Rubrik: Maus & Tastatur · Tastatursteuerung | VB-Versionen: VB4, VB5, VB6 | 22.05.03 |
Prüfen, ob der Fokus mit TAB, Hotkey oder Maus kam Ein Tipp, der zeigt, wie man prüfen kann, ob ein Control den Fokus per Hotkey, TAB-Taste oder der Maus bekam. | ||
Autor: Marcus Woida | Bewertung: | Views: 14.078 |
www.mawosoft.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Oft will man den Text in einer Textbox markieren, wenn es den Fokus erhält. Genauso oft soll das aber nur der Fall sein, wenn der Fokus mit der TAB-Taste oder dem Hotkey kam. Wenn man hingegen mit der Maus auf die TextBox klickt, soll der Cursor genau da blinken, wo geklickt wurde.
Diese Abfrage bewerkstelligt man mit der GetKeyState-Funktion aus der API-Sammlung.
Angenommen, die Textbox ist mit einem Label "Demo" beschriftet und der Hotkey liegt auf "D", d.h. beim Drücken von ALT+D bekommt die Textbox den Fokus.
' Benötigte API-Deklaration Private Declare Function GetKeyState Lib "user32" ( _ ByVal nVirtKey As Long) As Integer
Private Sub Text1_GotFocus() ' Inhalt der TextBox autom. markieren, ' wenn die TextBox den Fokus per TAB oder ' HotKey erhalten hat. If GetKeyState(vbKeyTab) < 0 Or GetKeyState(vbKeyD) < 0 Then With Text1 .SelStart = 0 .SelLength = Len(.Text) End With End If End Sub