'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()
    'KPD-Team 1998
    'URL: http://www.allapi.net/
    'E-Mail: [email protected]
    '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.   

    您的那个程序是需要您在textbox输入查找的内容
    再在listbox中查找listbox中有的数据为1~20000和Wow!
    您只有输入1~20000之间的数字或者Wow!才能找到
    不然postion为-1
      

  2.   

    看看这个:
    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()
        With lstBoxToSearch
            .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()
        lstBoxToSearch.ListIndex = SendMessage(lstBoxToSearch.hwnd, LB_FINDSTRING, -1, ByVal CStr(Text1.Text))
    End Sub
      

  3.   

    不知你注意到没有SendMessage的最后一个参数前要加个“ByVal"
    不过加了后只匹配到了字符串,对数字好象不起作用。