希望在向组合框中输入时,会自动展开List,将如下语句放在KeyPress中之后,不能使List不能自动展开,但文本已经匹配成功
lRet = SendMessage(cmbValue(6).hwnd, CB_SHOWDROPDOWN, True, 0)

解决方案 »

  1.   

    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Sub Combo1_Change()
    Dim iStart As Integer
    Dim sString As String
    Static iLeftOff As Integer
     
    iStart = 1
    iStart = Combo1.SelStart
     
    If iLeftOff <> 0 Then Combo1.SelStart = iLeftOff: iStart = iLeftOffsString = CStr(Left(Combo1.Text, iStart))
    Combo1.ListIndex = SendMessage(Combo1.hwnd, &H14C, -1, ByVal CStr(Left(Combo1.Text, iStart)))
     
    If Combo1.ListIndex = -1 Then iLeftOff = Len(sString): Combo1.Text = sString
    If Combo1.Text <> "" Then SendMessage Combo1.hwnd, &H14F, True, 0Combo1.SelStart = iStart
    Combo1.SelLength = 0
    iLeftOff = 0End Sub
    Private Sub Form_Load()
    Dim i As Long
    For i = 1 To 500
    Randomize
    Combo1.AddItem Chr(Int(Rnd * 26) + 97) & Chr(Int(Rnd * 26) + 97) & Chr(Int(Rnd * 26) + 97) & Chr(Int(Rnd * 26) + 97) & Chr(Int(Rnd * 26) + 97)
    Next
    Combo1.Text = ""
    End Sub