具体是这样
listview开启多选的情况下,从空白处用左键拉出虚线框,再对着空白处使用右键菜单刷新.右键菜单执行完毕后虚线框会自动出现跟随鼠标这问题有朋友遇到过有什么好办法解决么?
VB代码如下Private Sub Form_Load()
Ref
End SubPrivate Sub ListView1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button <> 2 Then
Exit Sub
End If
PopupMenu menu1
End SubPublic Sub Ref()'刷新listview信息
Dim ii As Long
Dim plus As ListItem
    
With ListView1
.View = lvwReport
.ListItems.Clear
.ColumnHeaders.Clear
.ColumnHeaders.Add , "ID", "ID", 800
.ColumnHeaders.Add , "NAME", "NAME", 800For ii = 1 To 10
Set plus = ListView1.ListItems.Add(, , Format$(ii, "00000"))
plus.SubItems(1) = CStr(ii)
Next iiEnd With
End SubPrivate Sub menu2_Click()'右键刷新菜单事件
Ref
End Sub

解决方案 »

  1.   

    点击了菜单之后,在那个菜单事件里面点一下鼠标
    Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
    Private Const MOUSEEVENTF_LEFTDOWN = &H2
    Private Const MOUSEEVENTF_LEFTUP = &H4
        mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
        mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
      

  2.   

    谢谢king06确实能解决问题!3Q
    回dbcontrols,这确实不算个问题,但如果遇到这种情况时只要你不点一下鼠标虚线框一直跟随鼠标乱窜给人感觉确实不好.之前我有试过sendmessage发鼠标左键消息给listview没解决,试了king06的确实有效.3Q朋友