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.