用listindex属性可以设定,但必须知道索引值,现在只知道这一项的内容怎么实现

解决方案 »

  1.   

    Private Const LB_FINDSTRING As Long = &H18F
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPrivate Sub Command1_Click()
    Dim index As Long
    index = SendMessage(List1.hwnd, LB_FINDSTRING, -1, ByVal Text1.Text)'
    MsgBox index'这个就是text1字符在list中对就的索引了.
    End Sub
      

  2.   

    用一个Collection,元素为index与combox的list一一对应,添加的时候,key用文本内容用Collection("文本内容")就可以取到index
      

  3.   

    楼上的api解决的很好了。不过我觉得写个简单的循环也不错.    
        Dim i As Integer
        For i = 0 To Combo1.ListCount - 1
            If (Text1.Text = Combo1.List(i)) Then
                Combo1.ListIndex = i
                Exit For
            End If
        Next i
      

  4.   

    这是发消息的API函数,怎么不行,具体点?
      

  5.   

    Private Sub ListView1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
        Dim A As Long, I As Long
        Dim lstX As ListItem
        Set lstX = ListView1.HitTest(100, y)
        
        If Not (lstX Is Nothing) Then
            A = x - ListView1.SelectedItem.Left
            For I = 1 To ListView1.ColumnHeaders.Count
                If (ListView1.ColumnHeaders(I).Left <= A) And (A <= ListView1.ColumnHeaders(I).Left + ListView1.ColumnHeaders(I).Width) Then
                    Debug.Print I
                    If I = 1 Then
                        ListView1.ToolTipText = lstX.Text
                    Else
                        ListView1.ToolTipText = lstX.ListSubItems(I - 1).Text
                    End If
                    Exit For
                Else
                    ListView1.ToolTipText = ""
                End If
            Next I
        Else
            ListView1.ToolTipText = ""
            Exit Sub
        End If
      

  6.   

    晕,是不行,他那个是ListBox,如果是ComboBox就不行了,
    石欠tztz520(午夜逛街)~
      

  7.   

    换个消息就行了.Private Const CB_FINDSTRING As Long = &H14C'
      

  8.   

    Private Const LB_FINDSTRING As Long = &H18F'这个常数是对应listbox控件的.
    Private Const CB_FINDSTRING As Long = &H14C'这个常数是对应combox控件的.看楼主是用哪个控件了,
    代码是一样的,替换这个常数就OK了
      

  9.   

    如果是ComboBox,Msgbox的永远是0
      

  10.   

    哦,可以了,楼主明明写的是Combo,干吗给个List的?
    石欠~
      

  11.   

    嗯,我试了午夜逛街的api,确实不行还是写一个函数用循环解决吧,这个以后再研究,多谢各位
      

  12.   

    呵呵,vb区的朋友都很热心,不像java区的不知有没有更方便的办法先揭帖了