ListBox. KeyDown-Ereignis (Access)ListBox.KeyDown event (Access)

Das KeyDown-Ereignis tritt ein, wenn der Benutzer eine Taste drückt, während ein Formular oder ein Steuerelement den Fokus aufweist.The KeyDown event occurs when the user presses a key while a form or control has the focus. Dieses Ereignis tritt auch ein, wenn Sie mithilfe der "Tastaturbefehle"-Aktion in einem Makro oder mit der SendKeys -Anweisung in Visual Basic Tastatureingaben an ein Formular oder Steuerelement senden.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.

SyntaxSyntax

Ausdruck. KeyDown (Keycode, UMSCHALTTASTE)expression.KeyDown (KeyCode, Shift)

Ausdruck Eine Variable, die ein ListBox -Objekt darstellt.expression A variable that represents a ListBox object.

ParameterParameters

NameName Erforderlich/OptionalRequired/Optional DatentypData type BeschreibungDescription
KeyCodeKeyCode ErforderlichRequired IntegerInteger Ein Tastencode wie vbKeyF1 (die F1-Taste) oder vbKeyHome (Pos1-Taste).A key code, such as vbKeyF1 (the F1 key) or vbKeyHome (the Home key). Verwenden Sie zur Angabe von Tastencodes die im Objektkatalog aufgeführten systeminternen Konstanten.To specify key codes, use the intrinsic constants shown in the Object Browser. Sie können verhindern, dass ein Objekt einen Tastendruck erhält, __ indem Sie Keycode auf 0 festlegen.You can prevent an object from receiving a keystroke by setting KeyCode to 0.
ShiftShift ErforderlichRequired IntegerInteger Der Status der UMSCHALT-, STRG-und Alt-Tasten zum Zeitpunkt des Ereignisses.The state of the Shift, Ctrl, and Alt keys at the time of the event. Wenn Sie das Shift -Argument testen müssen, können Sie eine der folgenden systeminternen Konstanten als Bitmasken verwenden:If you need to test for the Shift argument, you can use one of the following intrinsic constants as bit masks:
  • acShiftMask Die Bitmaske für die UMSCHALTTASTE.acShiftMask The bit mask for the Shift key.

  • acCtrlMask Die Bitmaske für die STRG-Taste.acCtrlMask The bit mask for the Ctrl key.

  • acAltMask Die Bitmaske für die Alt-Taste.acAltMask The bit mask for the Alt key.

BemerkungenRemarks

Das KeyDown -Ereignis gilt nur für Formulare und Steuerelemente in einem Formular und nicht für Steuerelemente eines Berichts.The KeyDown event applies only to forms and controls on a form, and not to controls on a report.

Wenn beim Auftreten dieser Ereignisse ein Makro oder eine Ereignisprozedur ausgeführt werden soll, legen Sie die OnKeyDown -Eigenschaft auf den Namen des Makros oder auf [Ereignisprozedur] fest.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].

Für beide Ereignisse gilt, dass alle Tastenanschläge von dem Objekt empfangen werden, das den Fokus hat.For both events, the object with the focus receives all keystrokes. Ein Formular kann nur dann den Fokus haben, wenn es keine Steuerelemente enthält oder alle seine sichtbaren Steuerelemente deaktiviert sind.A form can have the focus only if it has no controls or all its visible controls are disabled.

Ein Formular empfängt darüber hinaus alle Tastaturereignisse, d. h. auch die, die für Steuerelemente eintreten, wenn Sie die KeyPreview-Eigenschaft des Formulars auf "Ja" festlegen.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. Mit dieser Eigenschafteneinstellung treten alle Tastaturereignisse zuerst für das Formular und dann für das Steuerelement mit dem Fokus ein.With this property setting, all keyboard events occur first for the form, and then for the control that has the focus. Sie können unabhängig davon, welches Steuerelement den Fokus hat, auf bestimmte auf dem Formular gedrückte Tasten reagieren.You can respond to specific keys pressed in the form, regardless of which control has the focus. Sie können z. B. festlegen, dass mit der Tastenkombination STRG+X auf einem Formular immer dieselbe Aktion ausgeführt werden soll.For example, you may want the key combination Ctrl+X to always perform the same action on a form.

Wenn Sie eine Taste gedrückt halten, werden die Ereignisse KeyDown und KeyPress wiederholt gewechselt (KeyDown, KeyPress, KeyDown, KeyPressusw.), bis Sie den Schlüssel loslassen und dann das KeyUp -Ereignis Tritt auf,.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.

Das KeyDown-Ereignis tritt zwar beim Drücken fast aller Tasten ein, wird jedoch in der Regel verwendet, um die folgenden Tasten bzw. Tastenkombinationen zu erkennen und zwischen diesen zu unterscheiden:Although the KeyDown event occurs when most keys are pressed, it is typically used to recognize or distinguish between:

  • Tasten des erweiterten Zeichensatzes, wie z. B. Funktionstasten.Extended character keys, such as function keys.

  • Navigationstasten wie "Start", "Ende", "PgUp", "PgDn", "nach oben", "nach unten", "nach rechts", "Links" und "Tab".Navigation keys, such as Home, End, PgUp, PgDn, Up arrow, Down arrow, Right arrow, Left arrow, and Tab.

  • Kombinationen von Tasten und Standardtastatur Modifizierern (UMSCHALTTASTE, STRG oder alt)Combinations of keys and standard keyboard modifiers (Shift, Ctrl, or Alt keys).

  • Die Zehnertastatur und die Zahlentasten der Tastatur.The numeric keypad and keyboard number keys.

Das KeyDown-Ereignis tritt nicht ein, wenn Sie Folgendes drücken:The KeyDown event does not occur when you press:

  • Die EINGABETASTE, wenn das Formular eine Befehlsschaltfläche enthält, für die die default -Eigenschaft auf Ja festgelegt ist.The Enter key if the form has a command button for which the Default property is set to Yes.

  • Die ESC-Taste, wenn das Formular eine Befehlsschaltfläche enthält, für die die Cancel -Eigenschaft auf Ja festgelegt ist.The Esc key if the form has a command button for which the Cancel property is set to Yes.

Das KeyDown-Ereignis tritt ein, wenn Sie ein ANSI-Zeichen drücken oder senden.The KeyDown event occurs when you press or send an ANSI key. Das KeyUp-Ereignis tritt nach jedem Ereignis für ein Steuerelement ein, das durch das Drücken oder Senden einer Taste ausgelöst wurde.The KeyUp event occurs after any event for a control caused by pressing or sending the key. Wenn ein Tastenanschlag bewirkt, dass der Fokus von einem Steuerelement an ein anderes abgegeben wird, tritt für das erste Steuerelement das KeyDown -Ereignis auf, während für das zweite Steuerelement die Ereignisse KeyPress und KeyUp auftreten.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.

Verwenden Sie das KeyPress -Ereignis, um das ANSI-Zeichen zu ermitteln, das der gedrückten Taste entspricht.To find out the ANSI character corresponding to the key pressed, use the KeyPress event.

Wenn durch das Drücken und Senden einer Taste ein gebundenes Dialogfeld angezeigt wird, treten das KeyDown- und das KeyPress-Ereignis ein, nicht aber das KeyUp-Ereignis.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.

BeispielExample

Im folgenden Beispiel wird bestimmt, ob Sie die UMSCHALTTASTE, STRG oder ALT gedrückt haben.The following example determines whether you have pressed the Shift, Ctrl, or Alt key.

Um das Beispiel zu testen, fügen Sie die folgende Ereignisprozedur zu einem Formular hinzu, das **** ein Textfeld mit dem Namen KeyHandler enthält.To try the example, add the following event procedure to a form containing a text box named KeyHandler.

Private Sub KeyHandler_KeyDown(KeyCode As Integer, _ 
     Shift As Integer) 
    Dim intShiftDown As Integer, intAltDown As Integer 
    Dim intCtrlDown As Integer 
 
    ' Use bit masks to determine which key was pressed. 
    intShiftDown = (Shift And acShiftMask) > 0 
    intAltDown = (Shift And acAltMask) > 0 
    intCtrlDown = (Shift And acCtrlMask) > 0 
    ' Display message telling user which key was pressed. 
    If intShiftDown Then MsgBox "You pressed the Shift key." 
    If intAltDown Then MsgBox "You pressed the Alt key." 
    If intCtrlDown Then MsgBox "You pressed the Ctrl key." 
End Sub

Support und FeedbackSupport and feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation?Have questions or feedback about Office VBA or this documentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.