VB-Homepage Tipp 081

GotFocus Ereignis nur bei vorbestimmten Aktionen ausführen

GotFocus Ereignis, also das Ereignis, wenn ein Objekt (Textbox,Listbox,Commandbutton usw.) das aktive Objekt wird ( es ist markiert ). Diesem Ereignis kann man nun wie jedem anderen eine bestimmte Aktion zuordnen.
(Also wenn beispielsweise eine Textbox den Focus erhält, so soll eine Msgbox erscheinen, die Informationen zur Textbox ausgibt.)

Das alles ist kein Problem, was aber, wenn während der Programmausführung bestimmte Aktionen mit der Textbox geschehen und so durch das Programm selbst, dieses Objekt als aktives markiert wird. Dann lößt es Ihr GotFocus-Ereignis aus. Sicher weniger schön.

Sie bekommen aber hier nun eine Möglichkeit abzufragen, wie den das Objekt aktiv gesetzt wurde und können so auswählen, ob Ihr Ereignis starten soll oder nicht.
Der Tipp stammt von Werner.Almesberger, der darauf hinweist, daß er nicht der geistige Vater dieses Tipps ist, sondern das er ihn aus einer alten Zeitschrift ausgegraben hat.
Unser Dank ist Dir trotzdem gewiß.

Wenn Sie also diese Funktionalität in Ihrem Projekt benötigen, dann fügen Sie zuerst in den Abschnitt
General/Declarations folgenden Funktionsaufruf ein.

Declare Function GetAsyncKeyState Lib "User" (ByVal vKey As Integer) As Integer

An den Anfang des GotFocus-Ereignisses des jeweiligen Objektes stellen Sie folgende Prüfung.

If Not GetAsyncKeyState(&H1) = &H8001 Then Exit Sub '&H1=Linke Maustaste
If Not GetAsyncKeyState(&H9) = &H8001 Then Exit Sub '&H9=TAB-Taste
If Not GetAsyncKeyState(&H12) = &H8001 Then Exit Sub'&H12=Tastenkombination

1. Wurde das Objekt nicht mit der linken Maustaste aktiv gesetzt, dann beende das Ereignis
2. Wurde das Objekt nicht mit der TAB-Taste aktiv gesetzt, dann beende das Ereignis
3. Wurde das Objekt nicht über eine spezielle Tastenkombi aktiv gesetzt, dann beende das Ereignis

Sie können nun variieren, je nachdem wie es für Ihr Projekt günstig erscheint, so kommt Ihnen das Programm nicht mehr in die Quere, wenn es von selbst ein Objekt aktiv setzt.

Tipp-Download

Quelle : Werner Almesberger

Zurück zur Übersichtsseite