Работа с клавиатурой на уровне формы

2

У меня есть форма с несколькими специальными элементами управления, которые являются основным окном моего приложения. Я хотел бы захватить все нажатия клавиш, пока мое приложение работает, на уровне формы, а не на сфокусированном контроле или что-то в этом роде. Каков стандартный способ сделать это в WinForms?

Теги:
winforms

2 ответа

3
Лучший ответ

установить Form.PreviewKeys = true, тогда вы получите все события клавиатуры.

  • 0
    Это отлично работает. Я просто переопределил событие ProcessCmdKey, и оно, похоже, работает.
  • 0
    Работает до тех пор, пока в форме нет другого элемента управления для прослушивания того же ключа. Например, если вы пытаетесь поймать F2 на уровне формы, но также определили F2 как ярлык для ToolStripMenuItem, то ни один из них не получит их.
1

Установите для свойства Form KeyPreview значение true, а затем обработайте одно из событий нажатия клавиш.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню