Intereting Posts

Получение элемента под курсором мыши в элементе управления списком?

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

Поэтому я не использую события Mouse, но события Keyboard, которые не дают мне ListViewItem, конечно.

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

Есть идеи?

Если вы знаете, какой элемент управления 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); 

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

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