'This project needs a ListBox, named List1 and a TextBox, named Text1
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long
Const LB_FINDSTRING = &H18F
Private Sub Form_Load()
    'Add some items to the listbox
    With List1
        .AddItem "Computer"
        .AddItem "Screen"
        .AddItem "Modem"
        .AddItem "Printer"
        .AddItem "Scanner"
        .AddItem "Sound Blaster"
        .AddItem "Keyboard"
        .AddItem "CD-Rom"
        .AddItem "Mouse"
    End With
End Sub
Private Sub Text1_Change()
    'Retrieve the item's listindex
    List1.ListIndex = SendMessage(List1.hwnd, LB_FINDSTRING, -1, ByVal CStr(Text1.Text))
End Sub

解决方案 »

  1.   

    private sub Text1_Change()
      Dim Search As String,Index as Long  Search=Text1.text
      if Len(Search)>0 then
        Index=SendMessage(List1.hWnd,LB_SELECTSTRING,-1,Byval Search)
      else
        List1.ListIndex=0
      end if
    End sub
      

  2.   

    private sub Text1_Change()
      Dim Search As String,Index as Long  Search=Text1.text
      if Len(Search)>0 then
        Index=SendMessage(List1.hWnd,LB_SELECTSTRING,-1,Byval Search)
      else
        List1.ListIndex=0
      end if
    End sub
      

  3.   

    天哪,您们怎么这么快
    修改一下后者的
    list1.listindex=-1