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

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

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

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 (которое объединяет код клавиши и модификатор).

См. также