ComboBoxExtendedMatching – Extended Matching mode for ComboBox controls

' Enable extended matching to any type combobox control'' Extended matching means that as soon as you type in the edit area' of the ComboBox control, the routine searches for a partial match ' in the list area and highlights the characters left to be typed.'' To enable this capability you have only to call this routine' from within the KeyPress routine of the ComboBox, as follows:'' Private Sub Combo1_KeyPress(KeyAscii As Integer)'    ComboBoxExtendedMatching Combo1, KeyAscii' End SubSub ComboBoxExtendedMatching(cbo As ComboBox, KeyAscii As Integer, _    Optional CompareMode As VbCompareMethod = vbTextCompare)    Dim index As Long    Dim Text As String        ' if user pressed a control key, do nothing    If KeyAscii <= 32 Then Exit Sub        ' produce new text, cancel automatic key processing    Text = Left$(cbo.Text, cbo.SelStart) & Chr$(KeyAscii) & Mid$(cbo.Text, _        cbo.SelStart + 1 + cbo.SelLength)    KeyAscii = 0        ' search the current item in the list    For index = 0 To cbo.ListCount - 1        If InStr(1, cbo.List(index), Text, CompareMode) = 1 Then            ' we've found a match            cbo.ListIndex = index            Exit For        End If    Next        ' if no matching item    If index = cbo.ListCount Then        cbo.Text = Text    End If        ' highlight trailing chars in the edit area    cbo.SelStart = Len(Text)    cbo.SelLength = 9999    End Sub

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: