Vb.net 快速单击时引发ListView.ItemDrag事件

Vb.net 快速单击时引发ListView.ItemDrag事件,vb.net,listview,drag-and-drop,Vb.net,Listview,Drag And Drop,我在ListView对象上实现了拖放功能。启动一切的事件是ListView.ItemDrag。通常情况下,它工作正常,但当我快速单击列表视图时,会不时引发ListView.ItemDrag事件。 有人知道为什么以及如何防止它被触发吗?无论是移动次数最多,鼠标发送错误数据,还是存在使Windows认为鼠标移动的计时错误,vb.net都认为鼠标在单击过程中移动,从而创建了一个拖动事件。您可以忽略ItemDrag处理程序中的事件 如果问题是项目拖动事件正在替换单击事件,则可以使用MouseDown事

我在ListView对象上实现了拖放功能。启动一切的事件是ListView.ItemDrag。通常情况下,它工作正常,但当我快速单击列表视图时,会不时引发ListView.ItemDrag事件。

有人知道为什么以及如何防止它被触发吗?

无论是移动次数最多,鼠标发送错误数据,还是存在使Windows认为鼠标移动的计时错误,vb.net都认为鼠标在单击过程中移动,从而创建了一个拖动事件。您可以忽略ItemDrag处理程序中的事件

如果问题是项目拖动事件正在替换单击事件,则可以使用MouseDown事件而不是单击事件。MouseDown将在项目拖动事件之前激发,但如果存在项目拖动事件,MouseClick将不会激发。但是,如果使用双击处理程序,这可能会导致问题


另一种方法是将项目拖动事件视为单击事件,为两个事件调用相同的函数。当然,这是假设用户无法从listview中拖动项目。

我不确定单次单击的速度有多快,但很可能是因为鼠标在按下按钮时移动得太小。我非常小心地确保不会发生这种情况。我100%相信这不是原因