CoderNotes - заметки программиста

Публикации  »  C#, C++
Скидка 65% на Skillbox

Получите скидку 65% на любой курс программирования на популярной образовательной платформе Skillbox!

Подробнее
Бесплатный хостинг + SSL-сертификат

Зарегистрируйте домен и получите 2 месяца бесплатного хостинга и SSL-сертификат на 1 год в подарок

Подробнее

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

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

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

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

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

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

Книги по теме:

Станислава Солнечная

Программирование на С, С++

Посмотреть все книги по программированию

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

27.03.21   Гость Отличный ответ, что характерно без лишнего "наукообразия"
10.02.23   Гость з

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