Как запретить элементу управления Winforms прослушивать клавиатуру
Вопрос
Для определенной формы ввода я хотел бы сделать возможным ввод с клавиатуры. Я знаю, как читать ключи с помощью KeyPressed и KeyUp, но проблема в том, что когда элемент управления получает фокус и пользователь нажимает клавишу Enter, этот элемент управления получает событие Click. Можно ли предотвратить такое поведение? Или можно узнать, было ли событие клика запущено мышью или клавиатурой?
Решение
Это помогает? Из базы знаний Майкрософт
Переместите код кнопки с кнопки. Нажмите () на кнопку. Мышь ()
Другие советы
Это было бы проще, если бы вы могли описать ситуацию и точное поведение, которое вы хотите ... :)
Вы можете установить:
Form.KeyPreview = True
Сначала отправляются ключевые события в форму, а затем в элемент управления. Это дает вам возможность отлавливать ключевые события в форме и «отменять» их:
e.Handled = True
Также убедитесь, что вы не установили AcceptButton для формы!
Вы также можете прослушивать события клавиатуры и отфильтровывать клавиши.