Использование событий клавиатуры

Большинство программ Windows Forms обрабатывают ввод клавиатуры, обрабатывая события клавиатуры. В этой статье приводятся общие сведения о событиях клавиатуры, включая информацию о том, когда использовать каждое из событий и какие данные оно предоставляет. Дополнительные сведения о событиях в целом см. в разделе "Общие сведения о событиях".

События клавиатуры

Windows Forms вызывает следующие события, когда пользователь нажимает и освобождает клавиши клавиатуры:

Когда пользователь нажимает клавишу, Windows Forms определяет, какое событие следует вызывать на основе того, указывает ли сообщение клавиатуры символ или физический ключ. Дополнительные сведения о символах и физических клавишах см. в разделе Обзор клавиатуры, события клавиатуры.

Событие KeyDown

Событие KeyDown возникает, когда пользователь нажимает физический ключ. Если клавиша удерживается, это событие повторяется с частотой повтора клавиатуры операционной системы.

Обработчик KeyDown получает параметр KeyEventArgs, который предоставляет:

  • Свойство KeyCode , указывающее физическую кнопку клавиатуры.
  • Свойство Modifiers (Shift, Ctrlили Alt).
  • Свойство KeyData , которое объединяет ключевой код и модификатор.
  • Свойство Handled , которое запрещает базовому элементу управления получать ключ при установке.
  • Свойство SuppressKeyPress, которое подавляет события KeyPress и KeyUp для этого нажатия клавиши.

Событие KeyPress

Событие KeyPress возникает, когда нажатие клавиши или клавиш приводит к созданию символа. Например, нажатие клавиши SHIFT и маленькой буквы "a" выводит символ "A". KeyPress инициируется после KeyDown и повторяется с частотой повторения клавиатуры ОС, пока клавиша удерживается.

Обработчик для KeyPress получает параметр KeyPressEventArgs, содержащий код символа нажатой клавиши. Этот код символа является уникальным для каждого сочетания клавиши символов и модификатора.

Например, ключ "A" создает:

  • Код символа 65, если он нажат с помощью клавиши SHIFT.
  • Код символа 65, если включен Caps Lock.
  • Код символа 97, если он нажимается самостоятельно.
  • Код символа 1, если он нажимается с помощью клавиши CTRL .

Событие KeyUp

Событие KeyUp возникает один раз, когда пользователь освобождает физический ключ.

Обработчик KeyUp получает параметр KeyEventArgs, который предоставляет:

  • Свойство KeyCode , указывающее физическую кнопку клавиатуры.
  • Свойство Modifiers (Shift, Ctrlили Alt).
  • Свойство KeyData , которое объединяет ключевой код и модификатор.

См. также