|
Es gibt eine sehr einfach Möglichkeit, herauszufinden, ob ein
Steuerelement den Fokus per Tabulator-Taste, d.h. über das
Durchschalten der TAB-Reihenfolge oder auf andere Weise, etwa durch
Anklicken oder über den Aufruf der SetFocus-Methode
per Code erhalten hat.
Da Sie prüfen wollen, ob das Steuerelement den Fokus über die
Betätigung der Tabulator-Taste erhalten hat, prüfen Sie im GotFocus-Ereignis
des Steuerelements, ob die Tabulator-Taste noch niedergedrückt ist.
Den Zustand ("Status") einer Taste stellen Sie mit
Hilfe der API-Funktion GetKeyState
fest. Sie wird folgendermaßen deklariert:
Private Declare Function GetKeyState Lib "User32" _
(ByVal VirtualKeyCode As Long) As Long
Diese Funktion gibt den Status einer Taste auf dem Keyboard
zurück. Der Rückgabewert 0 bedeutet "Nicht gedrückt",
der Rückgabewert -1 bedeutet "Gedrückt" (Es gibt auch
noch Rückgabewerte für feststellbare Tasten wie NumLock und
CapsLock, aber diese interessieren uns hier ja nicht).
In unserem Fall übergeben wir den sogenannten "Virtuellen
Tasten-Code" der zu prüfenden Tabulator-Taste - die KeyCode-Konstante
hierfür ist vbKeyTab.
Private Sub XYSteuerelement_GotFocus()
If (GetKeyState(vbKeyTab) And &HF000&) = &HF000& Then
MsgBox "Fokus durch Tabulator-Taste erhalten!"
Else
MsgBox "Fokus anders erhalten!"
End If
End Sub
 |
So prüfen Sie, ob ein Steuerelement den
Fokus über die Tabulator-Taste erhalten hat

|

|