Подтвердить что ты не робот

KeyEventArgs.KeyData, KeyEventArgs.KeyCode и KeyEventArgs.KeyValue

У меня есть вопрос о KeyEventArgs KeyCode и KeyData и KeyValue. KeyCode и KeyData - это тип Keys, но я не знаю, какая разница между ними. Для KeyValue я не знаю, что это такое - он имеет тип int, возвращает ли он значение char нажатой клавиши?

У меня нет большого опыта работы с ключевыми событиями; любое объяснение того, как они функционируют и как их использовать, будет с благодарностью.

4b9b3361

Ответ 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.