Prevent AutoSelect-Verhalten einer System.Window.Forms.ComboBox (C #)
Hintergrund
Ich habe einForms.ComboBox
mit einerDropDownStyle = DropDown
.
Ich benutze nichtAutoComplete
, aber ich habe etwas Ähnliches implementiert, das nicht nur den Textanfang filtert, sondern einen regulären Ausdruck verwendet und alle Elemente anzeigt, die mit dem eingegebenen Text übereinstimmen. Das funktioniert gut.
Wenn ich jedoch den ersten Buchstaben eines übereinstimmenden Elements eingebe, wird dasComboBox
kehrt zu seinem ursprünglichen Verhalten zurück und setztDroppedDown = true
und auto wählt den ersten Eintrag aus und vervollständigt den Text so, dass er mit dem ausgewählten Element übereinstimmt (ähnlich wie bei @AutoCompleteMode
Anhängen). Was ich will, ist keine automatische Auswahl und automatische Vervollständigung.
Was ich bisher gefunden habe ist, dass ich irgendwie verhindern mussSendMessage()
mitCB_FINDSTRING
angerufen zu werden und @ zu ersetzCB_FINDSTRING
mitCB_FINDSTRINGEXACT
(MSDN Link).
Ich denke, ich muss die ComboBox-Klasse erweitern, bin mir aber nicht sicher, welche Methoden ich überschreiben muss. Ich arbeite mit C # .NET Framework v3.5.
Fragen
Wie verlängere ich einWindows.Forms.ComboBox
, um das automatische Auswahlverhalten zu verhindern?Links:
Wie kann ich die automatische Auswahl in der ComboBox im Dropdown-Menü verhindern, außer bei exakten Übereinstimmungen? (hat mir nicht geholfen)