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

В большинстве программ Windows Forms для обработки ввода с клавиатуры используются события клавиатуры.Most Windows Forms programs process keyboard input by handling the keyboard events. В этом разделе содержится обзор событий клавиатуры, включая сведения об использовании каждого события и данные, которые предоставляются для каждого события.This topic provides an overview of the keyboard events, including details on when to use each event and the data that is supplied for each event. См. также Обзор обработчиков событий (Windows Forms), Общие сведения о событиях (Windows Forms).Also see Event Handlers Overview (Windows Forms), Events Overview (Windows Forms).

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

Windows Forms содержит два события, которые возникают при нажатии пользователем клавиши клавиатуры, и одно событие, которое возникает при отпускании пользователем клавиши.Windows Forms provides two events that occur when a user presses a keyboard key and one event when a user releases a keyboard key:

  • Событие KeyDown возникает один разThe KeyDown event occurs once

  • Событие KeyPress, которое может встречаться несколько раз, если пользователь удерживает нажатую клавишу.The KeyPress event, which can occur multiple times when a user holds down the same key.

  • Событие KeyUp возникает один раз при отпускании клавиши.The KeyUp event occurs once when a user releases a key.

Когда пользователь нажимает клавишу, Windows Forms определяет, какое событие вызвать в зависимости от того, на что указывает сообщение клавиатуры — на клавишу с символом или на физическую клавишу.When a user presses a key, Windows Forms determines which event to raise based on whether the keyboard message specifies a character key or a physical key. Дополнительные сведения о символьных и физических клавишах см. в разделе принцип работы ввода с клавиатуры.For more information about character and physical keys, see How Keyboard Input Works.

В следующей таблице описаны указанные три метода.The following table describes the three keyboard events.

События клавиатурыKeyboard event ОписаниеDescription РезультатыResults
KeyDown Это событие возникает, когда пользователь нажимает физическую клавишу.This event is raised when a user presses a physical key. Обработчик KeyDown получает:The handler for KeyDown receives:

  • Параметр KeyEventArgs, который предоставляет свойство KeyCode (указывающее на физическую клавишу клавиатуры).A KeyEventArgs parameter, which provides the KeyCode property (which specifies a physical keyboard button).
  • Свойство Modifiers (SHIFT, CTRL или ALT).The Modifiers property (SHIFT, CTRL, or ALT).
  • Свойство KeyData (которое объединяет код клавиши и модификатор).The KeyData property (which combines the key code and modifier). Параметр KeyEventArgs также предоставляет:The KeyEventArgs parameter also provides:

    • Свойство Handled, которое может быть задано для предотвращения получения кода клавиши базовым элементом управления.The Handled property, which can be set to prevent the underlying control from receiving the key.
    • Свойство SuppressKeyPress, которое может использоваться для подавления событий KeyPress и KeyUp для данного нажатия клавиши.The SuppressKeyPress property, which can be used to suppress the KeyPress and KeyUp events for that keystroke.
KeyPress Это событие возникает если в результате нажатия клавиши или клавиш получается символ.This event is raised when the key or keys pressed result in a character. Например, пользователь нажимает клавиши SHIFT и строчную "a", в результате получается символ заглавной буквы "A".For example, a user presses SHIFT and the lowercase "a" keys, which result in a capital letter "A" character. KeyPress возникает после KeyDown.KeyPress is raised after KeyDown.

  • Обработчик KeyPress получает:The handler for KeyPress receives:
  • Параметр KeyPressEventArgs, который содержит код символа нажатой клавиши.A KeyPressEventArgs parameter, which contains the character code of the key that was pressed. Этот код является уникальным для каждой комбинации клавиш символа и модификатора.This character code is unique for every combination of a character key and a modifier key.

    Например клавиша "A" создаст For example, the "A" key will generate:

    • код символа 65, если она нажата при нажатой клавише "SHIFT"The character code 65, if it is pressed with the SHIFT key
    • Или клавиша CAPS LOCK вернет код 97, если она нажата сама по себе,Or the CAPS LOCK key, 97 if it is pressed by itself,
    • И код 1, если она нажата совместно с клавишей CTRL.And 1, if it is pressed with the CTRL key.
KeyUp Это событие возникает, когда пользователь отпускает физическую клавишу.This event is raised when a user releases a physical key. Обработчик KeyUp получает:The handler for KeyUp receives:

  • Параметр KeyEventArgs,A KeyEventArgs parameter:

    • который предоставляет свойство KeyCode (указывающее на физическую клавишу клавиатуры).Which provides the KeyCode property (which specifies a physical keyboard button).
    • Свойство Modifiers (SHIFT, CTRL или ALT).The Modifiers property (SHIFT, CTRL, or ALT).
    • Свойство KeyData (которое объединяет код клавиши и модификатор).The KeyData property (which combines the key code and modifier).

См. такжеSee Also

Ввод с клавиатуры в приложении Windows FormsKeyboard Input in a Windows Forms Application
Принцип работы ввода с клавиатурыHow Keyboard Input Works
Ввод данных мышью в приложении Windows FormsMouse Input in a Windows Forms Application