- Событие Form. KeyDown (Access) Form.KeyDown event (Access)
- Синтаксис Syntax
- Параметры Parameters
- Примечания Remarks
- Пример Example
- Поддержка и обратная связь Support and feedback
- Control. Key Down Событие
- Определение
- Тип события
- Примеры
- Комментарии
- Control. On Key Down(KeyEventArgs) Метод
- Определение
- Параметры
- Примеры
- Комментарии
- Примечания для тех, кто наследует этот метод
- Control. Preview Key Down Событие
- Определение
- Тип события
- Примеры
- Комментарии
Событие Form. KeyDown (Access) Form.KeyDown event (Access)
Событие KeyDown возникает, когда пользователь нажимает клавишу, когда фокус находится на форме или элементе управления. The KeyDown event occurs when the user presses a key while a form or control has the focus. Это событие также возникает при отправке нажатия клавиши в форму или элемент управления с помощью макрокоманды SendKeys в макросе или в операторе SendKeys в Visual Basic. This event also occurs if you send a keystroke to a form or control by using the SendKeys action in a macro or the SendKeys statement in Visual Basic.
Синтаксис Syntax
Expression. Клавиша вниз (константы, SHIFT) expression.KeyDown (KeyCode, Shift)
выражение: переменная, представляющая объект Form. expression A variable that represents a Form object.
Параметры Parameters
Имя Name | Обязательный или необязательный Required/Optional | Тип данных Data type | Описание Description |
---|---|---|---|
KeyCodeKeyCode | Обязательна Required | Целое числоInteger | Код клавиши, такой как vbKeyF1 (клавиша F1) или вбкэйхоме (клавиша «домой»). A key code, such as vbKeyF1 (the F1 key) or vbKeyHome (the Home key). Чтобы указать коды клавиш, используйте встроенные константы, показанные в обозревателе объектов. To specify key codes, use the intrinsic constants shown in the Object Browser. Вы можете запретить объекту принимать нажатие клавиши, присвоив параметру константы значение 0. You can prevent an object from receiving a keystroke by setting KeyCode to 0. |
ShiftShift | Обязательна Required | Целое числоInteger | Состояние клавиш Shift, CTRL и ALT во время события. The state of the Shift, Ctrl, and Alt keys at the time of the event. Если необходимо протестировать значение аргумента SHIFT , можно использовать одну из следующих встроенных констант в качестве битовых масок: If you need to test for the Shift argument, you can use one of the following intrinsic constants as bit masks: акшифтмаск Битовая маска для клавиши Shift. acShiftMask The bit mask for the Shift key. акктрлмаск Битовая маска для клавиши CTRL. acCtrlMask The bit mask for the Ctrl key. акалтмаск Битовая маска для клавиши ALT. acAltMask The bit mask for the Alt key. Примечания RemarksСобытие KeyDown применяется только к формам и элементам управления в форме, а не к элементам управления в отчете. The KeyDown event applies only to forms and controls on a form, and not to controls on a report. Для запуска макроса или процедуры обработки события при возникновении этих событий задайте для свойства OnKeyDown имя макроса или [процедура обработки событий]. To run a macro or event procedure when these events occur, set the OnKeyDown property to the name of the macro or to [Event Procedure]. Для обоих событий объект с фокусом получает все нажатия клавиш. For both events, the object with the focus receives all keystrokes. Форма может быть в фокусе, только если на ней нет элементов управления или все ее видимые элементы управления недоступны. A form can have the focus only if it has no controls or all its visible controls are disabled. Форма также будет получать все события клавиатуры, даже те, которые возникают для элементов управления, если для свойства KeyPreview формы задано значение «Да». A form will also receive all keyboard events, even those that occur for controls, if you set the KeyPreview property of the form to Yes. Если задано это свойство, все события клавиатуры сначала выполняются для формы, а затем для элемента управления, в котором находится фокус. With this property setting, all keyboard events occur first for the form, and then for the control that has the focus. Вы можете отвечать на нажатие определенных клавиш формы, независимо от того, какой элемент управления имеет фокус. You can respond to specific keys pressed in the form, regardless of which control has the focus. Например, может потребоваться, чтобы сочетание клавиш CTRL + X всегда выполняло одно и то же действие с формой. For example, you may want the key combination Ctrl+X to always perform the same action on a form. Если нажать и удерживать клавишу, события KeyDown и KeyPress повторяются многократно (KeyDown, Нажатие клавиши, Клавиша вниз, Нажатие клавишии т. д.), пока не будет освобожден ключ, а затем возникает событие KeyUp . If you press and hold down a key, the KeyDown and KeyPress events alternate repeatedly (KeyDown, KeyPress, KeyDown, KeyPress, and so on) until you release the key, and then the KeyUp event occurs. Несмотря на то, что событие KeyDown возникает при нажатии большинства клавиш, оно обычно используется для распознавания или различения: Although the KeyDown event occurs when most keys are pressed, it is typically used to recognize or distinguish between: Расширенные клавиши знаков, такие как функциональные клавиши. Extended character keys, such as function keys. Клавиши навигации, такие как Home, End, ПГУП, Пгдн, стрелка вверх, стрелка вниз, стрелка вправо, стрелка влево и табуляция. Navigation keys, such as Home, End, PgUp, PgDn, Up arrow, Down arrow, Right arrow, Left arrow, and Tab. Сочетания клавиш и стандартные модификаторы клавиатуры (Shift, CTRL или Alt). Combinations of keys and standard keyboard modifiers (Shift, Ctrl, or Alt keys). Клавиши цифр числовой панели и клавиатуры. The numeric keypad and keyboard number keys. Событие KeyDown не возникает при нажатии клавиши: The KeyDown event does not occur when you press: Клавиша ВВОД, если у формы есть кнопка, для которой для свойства по умолчанию задано значение «Да». The Enter key if the form has a command button for which the Default property is set to Yes. Клавиша ESC, если у формы есть кнопка, для которой для свойства Cancel задано значение «Да». The Esc key if the form has a command button for which the Cancel property is set to Yes. Событие KeyDown возникает при нажатии или отправке клавиши ANSI. The KeyDown event occurs when you press or send an ANSI key. Событие KeyUp возникает после какого бы то ни было события для элемента управления, вызванного нажатием или отправкой клавиши. The KeyUp event occurs after any event for a control caused by pressing or sending the key. Если нажатие клавиши приводит к переходу с одного элемента управления на другой, событие KeyDown возникает для первого элемента управления, а события KeyPress и KeyUp происходят для второго элемента управления. If a keystroke causes the focus to move from one control to another control, the KeyDown event occurs for the first control, while the KeyPress and KeyUp events occur for the second control. Чтобы узнать символ ANSI, соответствующий нажатой клавише, используйте событие KeyPress . To find out the ANSI character corresponding to the key pressed, use the KeyPress event. Если модальное диалоговое окно отображается в результате нажатия или отправки клавиши, возникают события KeyDown и KeyPress , но событие KeyUp не возникает. If a modal dialog box is displayed as a result of pressing or sending a key, the KeyDown and KeyPress events occur, but the KeyUp event doesn’t occur. Пример ExampleВ следующем примере определяется, нажата ли клавиша SHIFT, CTRL или ALT. The following example determines whether you have pressed the Shift, Ctrl, or Alt key. Чтобы попробовать пример, добавьте приведенную ниже процедуру обработки события в форму, содержащую текстовое поле с именем кэйхандлер. To try the example, add the following event procedure to a form containing a text box named KeyHandler. Поддержка и обратная связь Support and feedbackЕсть вопросы или отзывы, касающиеся Office VBA или этой статьи? Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback. Control. Key Down СобытиеОпределениеПроисходит при нажатии клавиши, если элемент управления имеет фокус. Occurs when a key is pressed while the control has focus. Тип событияПримерыВ следующем примере кода событие используется KeyDown для определения типа символа, введенного в элемент управления. The following code example uses the KeyDown event to determine the type of character entered into the control. В следующем примере кода демонстрируется порядок вызова KeyDown , KeyUp , KeyPress событий и регистрации обработчиков событий для них. The following code example demonstrates the order of raising the KeyDown, KeyUp, KeyPress events, and how to register event handlers on them. КомментарииКлючевые события происходят в следующем порядке: Key events occur in the following order: Чтобы обрабатывать события клавиатуры только на уровне формы и не включать другие элементы управления для получения событий клавиатуры, задайте 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 . Некоторые клавиши, такие как TAB, RETURN, ESC и клавиши со стрелками, автоматически обрабатываются элементами управления. Certain keys, such as the TAB, RETURN, ESC, and arrow keys are handled by controls automatically. Чтобы эти ключи вызывали KeyDown событие, необходимо переопределить IsInputKey метод в каждом элементе управления в форме. To have these keys raise the KeyDown event, you must override the IsInputKey method in each control on your form. Код переопределения должен IsInputKey определить, нажата ли одна из специальных клавиш, и возвращать значение true . The code for the override of the IsInputKey would need to determine if one of the special keys is pressed and return a value of true . Вместо переопределения IsInputKey метода можно выполнить обработку PreviewKeyDown события и присвоить IsInputKey свойству значение true . Instead of overriding the IsInputKey method, you can handle the PreviewKeyDown event and set the IsInputKey property to true . Пример кода см. в описании PreviewKeyDown события. For a code example, see the PreviewKeyDown event. Дополнительные сведения об обработке событий см. в разделе обработка и вызов событий. For more information about handling events, see Handling and Raising Events. Control. On Key Down(KeyEventArgs) МетодОпределениеВызывает событие KeyDown. Raises the KeyDown event. ПараметрыОбъект KeyEventArgs, содержащий данные события. A KeyEventArgs that contains the event data. ПримерыВ следующем примере кода событие используется KeyDown для определения типа символа, введенного в элемент управления. The following code example uses the KeyDown event to determine the type of character entered into the control. КомментарииПри возникновении события через делегат вызывается обработчик события. Raising an event invokes the event handler through a delegate. Дополнительные сведения см. в разделе обработка и вызов событий. For more information, see Handling and Raising Events. Метод OnKeyDown также позволяет производным классам обрабатывать событие, не присоединяя делегат. The OnKeyDown method also allows derived classes to handle the event without attaching a delegate. Это предпочтительная методика обработки событий в производном классе. This is the preferred technique for handling the event in a derived class. Примечания для тех, кто наследует этот методПри переопределении метода OnKeyDown(KeyEventArgs) в производном классе нужно убедиться, что вызывается метод OnKeyDown(KeyEventArgs) базового класса, чтобы зарегистрированные делегаты получили событие. When overriding OnKeyDown(KeyEventArgs) in a derived class, be sure to call the base class’s OnKeyDown(KeyEventArgs) method so that registered delegates receive the event. Control. Preview Key Down СобытиеОпределениеГенерируется перед событием KeyDown при нажатии клавиши, когда элемент управления имеет фокус. Occurs before the KeyDown event when a key is pressed while focus is on this control. Тип событияПримерыВ следующем примере кода демонстрируется Button , включающий ContextMenuStrip . The following code example demonstrates a Button that includes a ContextMenuStrip. Когда Button фокус переместится и вы нажмете клавишу Стрелка вверх или стрелка вниз, ContextMenuStrip отображается. When the Button has the focus and you press the UP ARROW or DOWN ARROW keys, the ContextMenuStrip appears. PreviewKeyDownОбработчик событий обнаруживает нажатие клавиш со стрелками вверх или вниз и устанавливает IsInputKey свойство в значение true . The PreviewKeyDown event handler detects when the UP ARROW or DOWN ARROW keys are pressed and sets the IsInputKey property to true . Это вызывает KeyDown событие, чтобы можно было отобразить ContextMenuStrip . This raises the KeyDown event so that you can display the ContextMenuStrip. Не следует помещайте в обработчик событий какую бы то ни было логику PreviewKeyDown , Кроме установки IsInputKey Свойства. You should not put any logic in the PreviewKeyDown event handler, other than to set the IsInputKey property. Вместо этого необходимо разместить логику в KeyDown обработчике событий. Instead, you should put your logic in the KeyDown event handler. КомментарииНекоторые нажатия клавиш, такие как TAB, RETURN, ESC и клавиши со стрелками, обычно игнорируются некоторыми элементами управления, так как они не считаются нажатиями клавиш ввода. Some key presses, such as the TAB, RETURN, ESC, and arrow keys, are typically ignored by some controls because they are not considered input key presses. Например, по умолчанию Button элемент управления игнорирует клавиши со стрелками. For example, by default, a Button control ignores the arrow keys. Нажатие клавиш со стрелками обычно приводит к перемещению фокуса на предыдущий или следующий элемент управления. Pressing the arrow keys typically causes the focus to move to the previous or next control. Клавиши со стрелками считаются клавишами навигации, и нажатие этих клавиш обычно не вызывает KeyDown событие для Button . The arrow keys are considered navigation keys and pressing these keys typically do not raise the KeyDown event for a Button. Однако нажатие клавиш со стрелками для Button вызывает PreviewKeyDown событие. However, pressing the arrow keys for a Button does raise the PreviewKeyDown event. При обработке PreviewKeyDown события для Button и присвоении IsInputKey свойству значения true , событие можно вызвать KeyDown при нажатии клавиш со стрелками. By handling the PreviewKeyDown event for a Button and setting the IsInputKey property to true , you can raise the KeyDown event when the arrow keys are pressed. Однако если вы обрабатываете клавиши со стрелками, фокус перестанет перемещаться к предыдущему или следующему элементу управления. However, if you handle the arrow keys, the focus will no longer move to the previous or next control. Дополнительные сведения об обработке событий см. в разделе обработка и вызов событий. For more information about handling events, see Handling and Raising Events. |