猜测你的意图(另外搞一个 TextBox 来利用 Change 事件):增量查询Private Declare Function SendMessagebyString Lib _ "user32" Alias "SendMessageA" (ByVal hWND As Long, _ ByVal wMsg As Long, ByVal wParam As Long, _ ByVal lParam As String) As LongPrivate Const CB_FINDSTRING = &H14C '在 ComboBox 中模糊查找Private Sub Text1_Change() Dim n As Longn = SendMessagebyString(CmbEmployeeNumber.hWnd, CB_FINDSTRING, -1, Trim(Text1.Text))If n >= 0 Then CmbEmployeeNumber.ListIndex = n End Sub如果要在 CmbEmployeeNumber 的文本框中输入,就必须利用 Timer。否则,每增加一个字符,匹配的列表项都将覆盖组合文本框。
ComboBox_DropDown CmbEmployeeNumber.hWnd
end sub
这和查找有什么关系?
txtStatus.Text = txtStatus.Text & sMsg & vbCrLf: DoEvents
txtStatus.SelStart = Len(txtStatus.Text): SendMessage txtStatus.hWnd, WM_VSCROLL, SB_BOTTOM, 0这种呢?
Private Const CB_FINDSTRING = &H14C
Private Const CB_FINDSTRINGEXACT = &H158
百度这两个参数应该有文章
"user32" Alias "SendMessageA" (ByVal hWND As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
ByVal lParam As String) As LongPrivate Const CB_FINDSTRING = &H14C '在 ComboBox 中模糊查找Private Sub Text1_Change()
Dim n As Longn = SendMessagebyString(CmbEmployeeNumber.hWnd, CB_FINDSTRING, -1, Trim(Text1.Text))If n >= 0 Then CmbEmployeeNumber.ListIndex = n
End Sub如果要在 CmbEmployeeNumber 的文本框中输入,就必须利用 Timer。否则,每增加一个字符,匹配的列表项都将覆盖组合文本框。