Когда мышь захвачена другим элементом управления, событие мыши, например 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));
}