powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Навигация по MenuStrip используя только клавиатуру
1 сообщений из 1, страница 1 из 1
Навигация по MenuStrip используя только клавиатуру
    #39810935
Arbit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте уважаемые Гуру!

Я не студент и не профи, просто люблю это дело
Извините что снова вас беспокою.

Понадобилась мне навигация в MenuStrip с использованием только клавиатуры:
клавиши со стрелками и выбор по Enter

Пытаюсь отловить нажатие этих клавиш.
Гугл сказал что стрелки в MenuStrip можно отловить только в событии меню PreviewKeyDown
и затем передать нажатие в KeyDown, где и разместить логику

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
private void Menu_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
        {
            switch (e.KeyCode)
            {
                case Keys.Left:
                case Keys.Right:
                case Keys.Up:
                case Keys.Down:
                case Keys.Enter:
                    e.IsInputKey = true;
                    break;
            }
        }

private void Menu_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.KeyCode)
            {
                ... логика...
            }
        }


Все это хорошо работает если у выделенного MenuStripItem выпадающий список (submenu) не открыт
При этом выделенным элеменом является старый (до нажатия клавиши).
Если же список открыт то навигационные клавши таким образом не ловятся,
хотя подсветка на следующий элемент вышестоящего меню переходит.
Расставил ловушки по всем событиям клавиш MenuStrip и на уровне формы
Обнаружил, что при открытом списке можно отловить клавиши только в KeyUp MenuStrip, но там
выделенным элементом является уже новый элемент .

А как отловить клавиши при навигации по раскрытому списку и выбору по Enter - не могу понять
Еще забыл сказать, что у меня в Form_KeyDown есть функциональные горячие кавиши,
но навигационных клавиш и Enter нету.

Прошу вашей помощи, сильно не пинайте пожалуйста.
Заранее благодарен
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Навигация по MenuStrip используя только клавиатуру
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]