你在Mouse_Move里,判断button=0,就可以抓住事件了啊。只要在此时setfocus就可以了啊。

解决方案 »

  1.   

    最简单的方法就是你在listbox的右键事件里调用单击左键。
      

  2.   

    当用左键点击listbox里面某一项时,该项会高亮显示,表示被选中了。但用右键点击却没有这个效果。怎样才能实现这个效果呢?
      

  3.   

    '窗体上加一个ListBox,一个Text1
    Const LB_ITEMFROMPOINT = &H1A9
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongDim ListIndex As IntegerPrivate Sub Form_Load()
    Dim i As Integer
        For i = 0 To 20
            List1.AddItem "Item" & i
        Next
    End SubPrivate Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
        If Button = 2 Then
            If ListIndex <> -1 Then
                List1.ListIndex = ListIndex
            End If
        End If
    End SubPrivate Sub List1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim pos As Long, idx As Long
        pos = X / Screen.TwipsPerPixelX + Y / Screen.TwipsPerPixelY * 65536
        idx = SendMessage(List1.hwnd, LB_ITEMFROMPOINT, 0, ByVal pos)
        If idx < 65536 Then
            ListIndex = idx
            Text1.Text = List1.List(idx)
        End If
    End Sub