Visual Studio 2010, C# TabbingWie eine WinForm-Taste in der Zeit ermöglichen, den Fokus erhalten von
Ich habe ein ComboBox
mit einem DropDown
, AutoComplete
Set SuggestAppend
und die AutoCompleteSource
ist vom ListItems
. Der Benutzer tippt Daten in ihn ein, bis er den richtigen Eintrag hat. Wenn die Daten mit einem der Listenelemente übereinstimmen, ist eine Schaltfläche neben der Combobox deaktiviert.
Wenn der Benutzer die Tabulatortaste drückt, akzeptiert die Funktion zur automatischen Vervollständigung den aktuellen Vorschlag. Es wird auch zum nächsten Steuerelement in der Tab-Reihenfolge weitergeleitet, das aktiviert ist. Natürlich, da ich möchte, dass es auf den Disabled Button geht, muss ich es aktivieren, sobald ich den Eintrag validiere.
Das Problem ist, dass keines der Ereignisse, die ich versucht habe, PreviewKeyDown
, LostFocus
, SelectedIndexChanged
mir erlauben, den Knopf in der Zeit zu ermöglichen, für die es den Fokus proccessed und empfangen werden. Es geht immer zur nächsten Schaltfläche in der Tab-Reihenfolge, die immer aktiviert ist.
Ich bin etwa bereit, die Schaltfläche aktiviert zu lassen und es einen Fehler geben, wenn zu früh gedrückt, aber ich will es nicht so machen. Ich möchte auch nicht in spezielle Modus-Flags kommen, um zu verfolgen, wenn diese Steuerelemente den Fokus erhalten. Validierung scheint eine normale Sache zu sein, aber ich stecke fest.
Wenn die SelectedIndexChanged
funktionierte, wenn der Benutzer eine Übereinstimmung machte, wäre dies einfach. Es wird nicht ausgelöst, wenn die Box gelöscht wird oder wenn eine getippte Übereinstimmung gefunden wird.
Verwenden Sie das TextChanged-Ereignis. –