vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Maus & Tastatur · Tastatursteuerung   |   VB-Versionen: VB4, VB5, VB622.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 WoidaBewertung:  Views:  14.078 
www.mawosoft.deSystem:  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



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.