我不知道有没有函数,我的做法是逐条纪录比较
从list1(0)到List1.List (List1.ListCount - 1)

解决方案 »

  1.   

    有的,如果listindex=-1,那就说明当前值就不在列表当中
      

  2.   

    Visual Basic没有啊,自己写函数吧
      

  3.   

    Private Sub Command1_Click()
        List1.Text = Text1.Text
        MsgBox List1.ListIndex
    End SubPrivate Sub Form_Load()
        List1.AddItem "1"
        List1.AddItem "2"
        List1.AddItem "3"
        List1.AddItem "4"
        List1.AddItem "5"
    End Sub在text1中输入要查询的值,listindex会返回结果,从0开始的,如果为-1则无此值!
      

  4.   

    有的,如果listindex=-1,那就说明当前值就不在列表当中即将列表框的text属性等于你想求的值。
    再判断它的ListIndex是否为-1,如果是则就不在列表当中。如果是正数则说明它就是第几个数
      

  5.   

    高!我真是笨鸟,以前我都是用循环语句一个一个比较
    for i=0 to list1.listcount-1
         if list1.list(i)=TmpStr then .....
    next i
      

  6.   

    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 Const LB_FINDSTRING = &H18F
    Private Const LB_FINDSTRINGEXACT = &H1A2
    Private Sub Form_Load()
        List1.AddItem "ABC"
        List1.AddItem "ABCD"
        List1.AddItem "ABCDE"
        List1.AddItem "ABCDEF"
    End Sub
    Private Sub Command1_Click()
        MsgBox "ListIndex = " & FindString(List1, "ABCDEF")
    End Sub
    Private Function FindString(lstSrc As VB.ListBox, strFind As String) As Long
        FindString = SendMessage(lstSrc.hwnd, LB_FINDSTRING, 0, ByVal strFind)
    End Function