在ListBox
内拖动项目时,我想突出显示悬停的项目
我找到一个相关的问题here,但是当按下鼠标时,MouseMove
和MouseLeave
事件将停止工作。
答案 0 :(得分:1)
当鼠标被另一个控件捕获时,鼠标事件如MouseMove
不会针对放置目标控件引发。
无论鼠标捕获如何,您始终可以使用以下代码找到热索引:
var index = listBox1.IndexFromPoint(listBox1.PointToClient(Cursor.Position));
如果在拖动期间鼠标进入/移动/离开事件对您很重要,请使用拖动事件DragEnter
,DragOver
和DragLeave
事件。
例如,要在鼠标悬停在目标列表框上时获取鼠标指针下方项目的索引,可以处理DragOver
:
private void listBox1_DragOver(object sender, DragEventArgs e)
{
var index = listBox1.IndexFromPoint(listBox1.PointToClient(Cursor.Position));
}