KeyEventArgs.Handled против KeyEventArgs.SupressKeyPress - PullRequest
8 голосов
/ 26 сентября 2011

Какая разница между

e.Handled = true

и

e.SuppressKeyPress = true

Я читал, что SuppressKeyPress вызывает e.Handled, но еще это делает?

Ответы [ 2 ]

11 голосов
/ 26 сентября 2011

Согласно этому блогу: Новые API клавиатуры: KeyEventArgs.SuppressKeyPress :

Проблема в том, что «Обработано» не заботится об ожидающих WM_CHAR сообщений, уже созданных в очереди сообщений, поэтому установка Handled = true не предотвращает возникновение KeyPress.

Чтобы не сломать никого, кто в данный момент получил e.Handled = true, нам нужно было добавитьновое свойство под названием SuppressKeyChar.Если бы мы пошли другим путем, если «обработка» нажатия клавиш внезапно начала работать, мы могли бы сломать людей, у которых случайно было установлено значение true.

2 голосов
/ 26 сентября 2011

Это просто предотвращает ввод данных пользователем для всех ожидающих нажатий кнопок.то есть в TextBox не только событие Handled установлено в true, пользовательский ввод подавляется и не отражается в текстовом поле, если вы печатаете очень быстро и нажимаете много кнопок одновременно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...