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
楼上的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
这是发消息的API函数,怎么不行,具体点?
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
换个消息就行了.Private Const CB_FINDSTRING As Long = &H14C'
Private Const LB_FINDSTRING As Long = &H18F'这个常数是对应listbox控件的. Private Const CB_FINDSTRING As Long = &H14C'这个常数是对应combox控件的.看楼主是用哪个控件了, 代码是一样的,替换这个常数就OK了
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
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
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
石欠tztz520(午夜逛街)~
Private Const CB_FINDSTRING As Long = &H14C'这个常数是对应combox控件的.看楼主是用哪个控件了,
代码是一样的,替换这个常数就OK了
石欠~