- Практическое руководство. Обработка события нажатия кнопки в Windows Forms How to: Respond to Windows Forms Button Clicks
- Реагирование на нажатие кнопки To respond to a button click
- Control. Key Press Событие
- Определение
- Тип события
- Примеры
- Комментарии
- Использование событий клавиатуры Using Keyboard Events
- События клавиатуры Keyboard Events
- Практическое руководство. Обработка ввода с клавиатуры на уровне формы How to: Handle Keyboard Input at the Form Level
- Обработка ввода с клавиатуры на уровне формы To handle a keyboard message at the form level
- Пример Example
- Компиляция кода Compiling the Code
- Использование событий клавиатуры (Windows Forms .NET) Using keyboard events (Windows Forms .NET)
- События клавиатуры Keyboard events
Практическое руководство. Обработка события нажатия кнопки в Windows Forms How to: Respond to Windows Forms Button Clicks
Самым простым использованием Button элемента управления Windows Forms является выполнение некоторого кода при нажатии кнопки. The most basic use of a Windows Forms Button control is to run some code when the button is clicked.
При щелчке Button элемента управления также создается ряд других событий, таких как MouseEnter события, MouseDown и MouseUp . Clicking a Button control also generates a number of other events, such as the MouseEnter, MouseDown, and MouseUp events. Если вы планируете присоединить обработчики событий для этих связанных событий, убедитесь, что их действия не конфликтуют. If you intend to attach event handlers for these related events, be sure that their actions do not conflict. Например, если нажать кнопку, чтобы очистить сведения, введенные пользователем в текстовое поле, при наведении указателя мыши на кнопку не должно отображаться всплывающая подсказка с несуществующими сведениями. For example, if clicking the button clears information that the user has typed in a text box, pausing the mouse pointer over the button should not display a tool tip with that now-nonexistent information.
Если пользователь пытается дважды щелкнуть Button элемент управления, каждый щелчок будет обрабатываться отдельно, то есть элемент управления не поддерживает событие двойного щелчка. If the user attempts to double-click the Button control, each click will be processed separately; that is, the control does not support the double-click event.
Реагирование на нажатие кнопки To respond to a button click
В этой кнопке Click EventHandler напишите код для выполнения. In the button’s Click EventHandler write the code to run. Button1_Click должен быть привязан к элементу управления. Button1_Click must be bound to the control. Дополнительные сведения см. в разделе инструкции. Создание обработчиков событий во время выполнения для Windows Forms. For more information, see How to: Create Event Handlers at Run Time for Windows Forms.
Control. Key Press Событие
Определение
Происходит при нажатии клавиши с буквой, Occurs when a character. пробела или клавиши BACKSPACE, если фокус находится в элементе управления. space or backspace key is pressed while the control has focus.
Тип события
Примеры
В следующем примере кода событие используется KeyPress для предотвращения ввода символов в элемент управления. The following code example uses the KeyPress event to prevent characters from entering the control.
В следующем примере кода демонстрируется порядок возрастания KeyDown событий, KeyUp и KeyPress , а также способы регистрации обработчиков событий для них. The following code example demonstrates the order of rising the KeyDown, KeyUp and KeyPress events, also how to register event handlers on them.
Комментарии
Ключевые события происходят в следующем порядке: Key events occur in the following order:
Это KeyPress событие не вызывается несимвольными ключами, отличными от пробела и Backspace; однако, несимвольные ключи вызывают KeyDown события и KeyUp . The KeyPress event is not raised by non-character keys other than space and backspace; however, the non-character keys do raise the KeyDown and KeyUp events.
Используйте KeyChar свойство для выборки сочетаний клавиш во время выполнения, а также для использования или изменения подмножества распространенных нажатий клавиш. Use the KeyChar property to sample keystrokes at run time and to consume or modify a subset of common keystrokes.
Чтобы обрабатывать события клавиатуры только на уровне формы и не включать другие элементы управления для получения событий клавиатуры, задайте KeyPressEventArgs.Handled для свойства в KeyPress методе обработки событий формы значение true . To handle keyboard events only at the form level and not enable other controls to receive keyboard events, set the KeyPressEventArgs.Handled property in your form’s KeyPress event-handling method to true .
Дополнительные сведения об обработке событий см. в разделе обработка и вызов событий. For more information about handling events, see Handling and Raising Events.
Использование событий клавиатуры 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) and 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:
| |||||||||
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.
Например клавиша «A» создаст For example, the «A» key will generate: Практическое руководство. Обработка ввода с клавиатуры на уровне формы How to: Handle Keyboard Input at the Form LevelWindows Forms предоставляет возможность обработки сообщений клавиатуры на уровне формы, прежде чем они достигнут элемента управления. Windows Forms provides the ability to handle keyboard messages at the form level, before the messages reach a control. В этом разделе показано, как выполнить данную задачу. This topic shows how to accomplish this task. Обработка ввода с клавиатуры на уровне формы To handle a keyboard message at the form levelЧтобы сообщения клавиатуры принимались формой, прежде чем они достигнут элементов управления в форме, нужно обработать события KeyPress или KeyDown начальной формы и присвоить свойству формы KeyPreview значение true . Handle the KeyPress or KeyDown event of the startup form, and set the KeyPreview property of the form to true so that keyboard messages are received by the form before they reach any controls on the form. В следующем примере кода обрабатывается событие KeyPress посредством обнаружения всех цифровых клавиш и использования «1», «4» и «7». The following code example handles the KeyPress event by detecting all of the number keys and consuming ‘1’, ‘4’, and ‘7’. Пример ExampleВ следующем примере кода представлено завершенное приложение для предыдущего примера кода. The following code example is the entire application for the above example. Приложение включает TextBox и несколько других элементов управления, предназначенных для перемещения фокуса ввода из TextBox. The application includes a TextBox along with several other controls that allow you to move focus from the TextBox. Событие KeyPress основной формы Form использует «1», «4» и «7», а событие KeyPress в TextBox использует «2», «5» и «8», остальные клавиши отображаются. The KeyPress event of the main Form consumes ‘1’, ‘4’, and ‘7’, and the KeyPress event of the TextBox consumes ‘2’, ‘5’, and ‘8’ while displaying the remaining keys. Сравните выходные данные MessageBox при нажатии цифровой клавиши, когда фокус ввода установлен на TextBox с выходными данными MessageBox при нажатии цифровой клавиши, когда фокус ввода установлен на одном из других элементов управления. Compare the MessageBox output when you press a number key while the TextBox has focus with the MessageBox output when you press a number key while focus is on one of the other controls. Компиляция кода Compiling the CodeДля этого примера требуются: This example requires: Использование событий клавиатуры (Windows Forms .NET) Using keyboard events (Windows Forms .NET)В большинстве программ Windows Forms для обработки ввода с клавиатуры используются события клавиатуры. Most Windows Forms programs process keyboard input by handling the keyboard events. В этой статье содержится обзор событий клавиатуры, включая сведения об использовании и предоставляемые данные для каждого события. This article 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 .NET). For more information about events in general, see Events overview (Windows Forms .NET). Документация для Руководства по рабочему столу по .NET 5 (и .NET Core) находится в разработке. The Desktop Guide documentation for .NET 5 (and .NET Core) is under construction. События клавиатуры Keyboard eventsWindows 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:
Когда пользователь нажимает клавишу, 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 Keyboard overview, keyboard events. В следующей таблице описаны указанные три метода. The following table describes the three keyboard events.
|