Использование событий клавиатуры (Windows Forms .NET)

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

Важно!

Документация по рабочему столу для .NET 7 и .NET 6 находится в стадии разработки.

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

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

  • Событие KeyDown возникает один раз.
  • Событие KeyPress, которое может встречаться несколько раз, если пользователь удерживает нажатую клавишу.
  • Событие KeyUp возникает один раз при отпускании клавиши.

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

В следующей таблице описаны указанные три метода.

События клавиатуры Description Результаты
KeyDown Это событие возникает, когда пользователь нажимает физическую клавишу. Обработчик KeyDown получает:

  • Параметр KeyEventArgs, который предоставляет свойство KeyCode (указывающее на физическую клавишу клавиатуры).
  • Свойство Modifiers (SHIFT, CTRL или ALT).
  • Свойство KeyData (которое объединяет код клавиши и модификатор). Параметр KeyEventArgs также предоставляет:

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

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

    Например клавиша "A" создаст

    • код символа 65, если она нажата при нажатой клавише "SHIFT"
    • Или клавиша CAPS LOCK вернет код 97, если она нажата сама по себе,
    • И код 1, если она нажата совместно с клавишей CTRL.
KeyUp Это событие возникает, когда пользователь отпускает физическую клавишу. Обработчик KeyUp получает:

  • Параметр KeyEventArgs,

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

См. также