Публикации
Публикации  »  C#, C++

Как отловить нажатие клавиши в любом месте формы

Как известно, чтобы отловить нажатие клавиши клавиатуры, нужно использовать события KeyPress, KeyDown, и KeyUp. Однако, бывает ситуация, когда мы не знаем на каком элементе формы будет установлен "фокус". Назначать событие на каждый элемент формы - это конечно глупо. Поэтому в этой краткой статье я записал для себя (и тех, кто прочтет) памятку о том, как отловить нажатие клавиши какой бы элемент формы не был активным.

Событие нажатия клавиши на клавиатуре на любом элементе формы

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

Если нужно, чтобы после обработки события в форме управление не передавалось дальше другим элементам, можно использовать в обработчике формы e.Handled = true; что будет означать, что событие уже обработано и остальные KeyPress обрабатывать не нужно.

Категория: C#, C++

Комментарии к статье:

Пока комментариев нет, ваш будет первым ;)

Добавить комментарий: