Rubrik: Controls · ComboBox | VB-Versionen: VB4, VB5, VB6 | 31.07.01 |
AutoComplete in der ComboBox Eine AutoComplete-Funktion für die eigene ComboBox - ganz einfach! | ||
Autor: Dieter Otter | Bewertung: | Views: 32.488 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Die "AutoComplete"-Funktion des Internet-Explorers ist schon eine feine Sache. Der IE vervollständigt automatisch Ihre angefangene Eingabe und markiert den Text hierbei automatisch, so daß dieser per Tastendruck wieder überschrieben werden kann.
So eine Autovervollständigungs-Funktion lässt sich für Ihre eigene ComboBox ganz leicht integrieren. Voraussetzung ist lediglich, daß es sich um eine editierbare ComboBox handelt - also Style = 0 DropDown Kombinationsbox, die Sorted-Eigenschaft auf True gesetzt ist und die ComboBox selbst mit den entsprechenden Einträgen gefüllt ist.
Und hier der Code
' Autovervollständigung... Private Sub Combo1_KeyUp(KeyCode As Integer, Shift As Integer) Static sTextOld As String Dim I As Integer Dim sPos As Integer With Combo1 ' nur wenn sich die Eingabe geändert hat If sTextOld <> .Text Then For I = 0 To .ListCount - 1 If .List(I) Like .Text + "*" Then sPos = .SelStart sTextOld = .Text .Text = .List(I) .SelStart = sPos .SelLength = Len(.Text) - sPos + 1 Exit For End If Next I End If End With End Sub
Und so funktioniert's:
Jedesmal, wenn eine Taste gedrückt wird, wird geprüft, ob es einen Eintrag innerhalb der ComboBox-Liste gibt, der dem aktuell eingegeben Text entsprechen könnte. Wenn ja, wird der komplette Eintrag der ComboBox ins Eingabefeld übernommen, wobei alle Zeichen ab der aktuellen Eingabeposition bis zum Ende markiert werden - ganz nach dem Vorbild der "AutoComplete"-Funktion des Internet-Explorers.