как выделить элемент "зависания" при перетаскивании элемента внутри списка - PullRequest
0 голосов
/ 10 февраля 2019

Я бы хотел выделить элемент наведения при перетаскивании элемента внутрь ListBox

. Я нашел один связанный вопрос здесь , но когда нажата мышь, MouseMove и MouseLeave событие перестает работать.

1 Ответ

0 голосов
/ 10 февраля 2019

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