KeyEventArgs.KeyData, KeyEventArgs.KeyCode и KeyEventArgs.Значения
у меня есть вопрос о KeyEventArgs
' s KeyCode
и KeyData
и KeyValue
.
KeyCode
и Keydata
являются ключами типа, но я не знаю, в чем разница между ними. Для KeyValue
, Я не знаю, что это такое-у него есть int
type, возвращает ли он char
значение нажатой клавиши?
у меня нет большого опыта работы с ключевыми событиями; любое объяснение того, как они функционируют и как их использовать, было бы весьма полезно.
1 ответов
KeyCode
содержит данные для ключа, который произвел KeyUp
или KeyDown
событие. KeyData
содержит комбинацию этой клавиши вместе с CTRL, SHIFT или ALT, если какой-либо из них был нажат.
пример:
- нажмите (и удерживайте) CTRL.
KeyDown
будет поднят,KeyCode
будетKeys.ControlKey
,KeyData
будетKeys.ControlKey | Keys.Control
. - удерживая нажатой клавишу CTRL, нажмите клавишу SHIFT.
KeyDown
будет поднят,KeyCode
будетKeys.ShiftKey
иKeyData
будетKeys.ShifKey | Keys.Shift | Keys.Control
.
отметим, что KeyData
и KeyCode
может содержать любое значение Keys
перечисление (например,Keys.A
, Keys.NumPad4
или Keys.Up
). Обратите внимание, что при нажатии одной из клавиш-модификаторов она представлена двумя значениями в KeyData
(один для ключа и один для значения модификатора). Модификаторы также доступны через Modifiers
собственность.
KeyValue
возвращает числовое значение, представляющее ключ, по сути, целое число, представляющее значение KeyCode
.