ListBox.KeyDown-Ereignis (Access)

Das KeyDown-Ereignis tritt ein, wenn der Benutzer eine Taste drückt, während ein Formular oder ein Steuerelement den Fokus aufweist. 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.

Syntax

Ausdruck. KeyDown (KeyCode, UMSCHALT)

Ausdruck Eine Variable, die ein ListBox-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
KeyCode Erforderlich Integer Ein Schlüsselcode, z. B. vbKeyF1 (F1-Taste) oder vbKeyHome (die Home-Taste). Verwenden Sie zur Angabe von Tastencodes die im Objektkatalog aufgeführten systeminternen Konstanten. Sie können verhindern, dass ein Objekt eine Tastatureingabe empfängt, indem Sie KeyCode auf 0 festlegen.
Shift Erforderlich Integer Der Zustand der UMSCHALT-, STRG- und ALT-TASTEN zum Zeitpunkt des Ereignisses. Wenn Sie das Argument UMSCHALT testen müssen, können Sie eine der folgenden systeminternen Konstanten als Bitmasken verwenden:
  • acShiftMask Die Bitmaske für die UMSCHALTTASTE.

  • acCtrlMask Die Bitmaske für die STRG-TASTE.

  • acAltMask Die Bitmaske für die ALT-TASTE.

HinwBemerkungeneise

Das KeyDown-Ereignis gilt nur für Formulare und Steuerelemente in einem Formular und nicht für Steuerelemente in einem Bericht.

Um ein Makro oder eine Ereignisprozedur auszuführen, wenn diese Ereignisse auftreten, legen Sie die OnKeyDown-Eigenschaft auf den Namen des Makros oder auf [Ereignisprozedur] fest.

Für beide Ereignisse gilt, dass alle Tastenanschläge von dem Objekt empfangen werden, das den Fokus hat. Ein Formular kann nur dann den Fokus haben, wenn es keine Steuerelemente enthält oder alle seine sichtbaren Steuerelemente deaktiviert sind.

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. Mit dieser Eigenschafteneinstellung treten alle Tastaturereignisse zuerst für das Formular und dann für das Steuerelement mit dem Fokus ein. Sie können unabhängig davon, welches Steuerelement den Fokus hat, auf bestimmte auf dem Formular gedrückte Tasten reagieren. Sie können z. B. festlegen, dass mit der Tastenkombination STRG+X auf einem Formular immer dieselbe Aktion ausgeführt werden soll.

Wenn Sie eine Taste drücken und gedrückt halten, wechseln sich die Ereignisse KeyDown und KeyPress wiederholt ab (KeyDown, KeyPress, KeyDown, KeyPress usw.), bis Sie die Taste loslassen, und dann tritt das KeyUp-Ereignis auf.

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:

  • Tasten des erweiterten Zeichensatzes, wie z. B. Funktionstasten.

  • Navigationstasten, z. B. Start, Ende, PgUp, PgDn, NACH-OBEN, NACH-UNTEN, NACH-RECHTS, NACH-LINKS und TAB.

  • Kombinationen von Tasten und Standardtastatifizierern (UMSCHALT-, STRG- oder ALT-TASTEN).

  • Die Zehnertastatur und die Zahlentasten der Tastatur.

Das KeyDown-Ereignis tritt nicht ein, wenn Sie Folgendes drücken:

  • Die EINGABETASTE, wenn das Formular über eine Befehlsschaltfläche verfügt, für die die Default-Eigenschaft auf Ja festgelegt ist.

  • Die ESC-TASTE, wenn das Formular über eine Befehlsschaltfläche verfügt, für die die Cancel-Eigenschaft auf Ja festgelegt ist.

Das KeyDown-Ereignis tritt ein, wenn Sie ein ANSI-Zeichen drücken oder senden. Das KeyUp-Ereignis tritt nach jedem Ereignis für ein Steuerelement ein, das durch das Drücken oder Senden einer Taste ausgelöst wurde. 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.

Um das ANSI-Zeichen zu ermitteln, das der gedrückten Taste entspricht, verwenden Sie das KeyPress-Ereignis .

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.

Beispiel

Im folgenden Beispiel wird ermittelt, ob Sie die UMSCHALT-, STRG- oder ALT-TASTE gedrückt haben.

Um das Beispiel auszuprobieren, fügen Sie die folgende Ereignisprozedur zu einem Formular hinzu, das ein Textfeld mit dem Namen KeyHandler enthält.

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 Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.