Если у меня есть 2 элемента управления списком на форме, какой из них обрабатывает клавиши со стрелками? (WinForms) - PullRequest
1 голос
/ 06 августа 2009

У меня есть WinForm с 2 ListView элементами управления. Первый вид списка находится слева и представляет список категорий, второй - справа и представляет элементы в категории. Думайте об этом как о классическом пользовательском интерфейсе типа проводника, но специализированном: иерархия всего на один уровень глубиной.

Если на LHS выделен элемент listviewItem, и я нажимаю клавишу со стрелкой, форма автоматически обрабатывает его. У меня нет обработчика событий KeyPress (или обработчика для KeyDown / KeyUp), но я узнал, что TreeView и ListView имеют встроенную функцию для обработки клавиш со стрелками в качестве входных данных для навигации.

Проблема в том, что форма обрабатывает это не интуитивно понятным способом. Фокус меняется на listview2, а затем последующие вводы клавиш со стрелками перемещаются внутри элементов listview2. Я хотел бы, чтобы фокус оставался в списке, в котором он был изначально.

Как мне убедиться в том, что когда список, имеющий фокус, один, обрабатывает стрелки вверх / вниз?

1 Ответ

2 голосов
/ 06 августа 2009

Вы, вероятно, делаете что-то с событием NodeSelected в виде дерева, которое перемещает фокус на просмотр списка. Если вы можете разместить код в своем вопросе, может быть, мы сможем решить, что это такое?

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