Получение элемента под курсором мыши в элементе управления списком? - PullRequest
3 голосов
/ 25 июня 2009

В основном я пытаюсь реализовать функцию, при которой, если пользователь нажимает клавишу, я хочу найти элемент под курсором мыши.

Так что я не использую события мыши, а события клавиатуры, которые, конечно, не дают мне ListViewItem.

Я просто не знаю, в каком месте мне нужно получить положение мыши и преобразовать ее в пространство элемента управления.

Есть идеи?

Ответы [ 2 ]

13 голосов
/ 25 июня 2009

Если вы знаете, какой элемент управления ListView вас интересует, то сработает следующий метод:

private ListViewItem GetItemFromPoint(ListView listView, Point mousePosition)
{
    // translate the mouse position from screen coordinates to 
    // client coordinates within the given ListView
    Point localPoint = listView.PointToClient(mousePosition);
    return listView.GetItemAt(localPoint.X, localPoint.Y);
}

// call it like this:
ListViewItem item = GetItemFromPoint(myListView, Cursor.Position);
0 голосов
/ 25 июня 2009

Действие клавиатуры, которое зависит от положения мыши, звучит немного неортодоксально. Действия клавиатуры обычно должны воздействовать на некоторый элемент, который выделен / сфокусирован / выбран на экране, либо выбранный предыдущими действиями клавиатуры или предыдущим щелчком мыши по этому элементу.

Просто что-то, что нужно иметь в виду, или вы получите «уникальное» (запутанное) взаимодействие с пользователем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...