我有一个名为listView_MouseUp的ListView方法,如果HitTest返回某些信息,该方法将在ListView中选择一个项目。之后,我测试是否用鼠标右键单击。然后,我打开一个弹出菜单,用于修改所选项目:
Private Sub listView_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim selectedListItem As ListItem
Set selectedListItem = listView.HitTest(X, Y)
If Not selectedListItem Is Nothing Then
' Select the item and load some text fields
If Button = vbRightButton Then
Me.PopupMenu popupChangeDocument
End If
End If
End Sub
如果第二次(在先前选择的项目上)单击(鼠标左键),则X和Y坐标正确(新值),并且弹出菜单不再可见。
如果我单击ListView的空白区域,则X和Y保持不变,并在单击位置打开弹出菜单。
为什么X和Y的值不更新?
答案 0 :(得分:0)
This link from vb-helper应该有所帮助。
@BillHileman感谢您的链接。不幸的是,它没有解决这个问题。但是在测试您的答案的过程中,我发现了问题:
listView_MouseUp方法的末尾有一个 DoEvents ,导致了这种奇怪的行为。