Ereignismonitoring

Liebe Wissenden,
ich suche nach einer einfachen Möglichkeit, die Ereignisse von Objekten in der Reihenfolge ihres Ablaufes nachzuvollziehen. Also quasi eine Funktion, die mir notiert wenn z.B. eine Textbox den Fokus bekommt.

Habt ihr eine Idee?
DesWeiteren habe ich folgende Frage,
Wenn ein Steuerelement den Fokus erhält, wird ja beim „Vorgänger“ ein LostFocus-Ereignis ausgelöst. Was aber passiert mit diesem LostFocus, wenn ich mit SetFocus den Fokus auf dasselbe Element zurücksetzte?

Herzlichen Dank für Eure Anregungen,

alex

Hallo Alex,

ich suche nach einer einfachen Möglichkeit, die Ereignisse von
Objekten in der Reihenfolge ihres Ablaufes nachzuvollziehen.
Also quasi eine Funktion, die mir notiert wenn z.B. eine
Textbox den Fokus bekommt.

Habt ihr eine Idee?

nur selbst machen, sonst keine. :wink:
Schreibe Dir eine Sub, die ein Logfile schreibt und rufe die aus den Ereignissen auf. Ich denke, das macht noch nicht mal viel Mühe.
Etwa so:

Private Sub logg(Element)
 Open Pfad For Append As #1
 Print #1, Element
 Close #1
End Sub

DesWeiteren habe ich folgende Frage,
Wenn ein Steuerelement den Fokus erhält, wird ja beim
„Vorgänger“ ein LostFocus-Ereignis ausgelöst. Was aber
passiert mit diesem LostFocus, wenn ich mit SetFocus den
Fokus auf dasselbe Element zurücksetzte?

Wann, wo? Bei Gotfocus eines anderen Elements? Dann wird zuerst das LostFocus Ereignis ausgeführt, dann GotFocus und der Focus sitzt wieder, wo er har kam. Wenn Du da in GotFocus noch ein SetFocus auf das andere Element schreibst, hast Du eine hübsche Endlosschleife. :wink:

Gruß, Rainer

Liebe Wissenden,

Hallo,

ich suche nach einer einfachen Möglichkeit, die Ereignisse von
Objekten in der Reihenfolge ihres Ablaufes nachzuvollziehen.
Also quasi eine Funktion, die mir notiert wenn z.B. eine
Textbox den Fokus bekommt.

Habt ihr eine Idee?

Rufe einfach in dem Ereigniss „GotFocus“ von jedem Object, eine Function / Sub auf die dir das protokolliert.

bsp. 1 listbox und 2 Comboboxen

Option Explicit

Private Sub Combo1\_GotFocus()
 Call WriteObject("Combo1")
End Sub

Private Sub Combo2\_GotFocus()
 Call WriteObject("Combo2")
End Sub

Private Sub List1\_GotFocus()
 Call WriteObject("List1")
End Sub


Private Sub WriteObject(x As String)
On Error Resume Next
 'Hier kannst du nun protokollieren.
 'In unserem bsp. wird das Element in List eingetragen
 List1.AddItem x
 List1.ListIndex = List1.ListCount - 1
End Sub

DesWeiteren habe ich folgende Frage,
Wenn ein Steuerelement den Fokus erhält, wird ja beim
„Vorgänger“ ein LostFocus-Ereignis ausgelöst.

Richtig!

Was aber
passiert mit diesem LostFocus, wenn ich mit SetFocus den
Fokus auf dasselbe Element zurücksetzte?

Dann wird dies wieder selektiert, was bedeuten würde das ein anderes Steuerlement nie den Fokus erhalten kann!

Bsp. 2 Comboboxen

Option Explicit

Private Sub Combo1\_LostFocus()
 Combo1.SetFocus
End Sub

Private Sub Form\_Activate()
 Combo1.SetFocus
End Sub

Somit würdest du nie auf ein anderes Steuerelement ueber die Benutzeroberfläche zugreifen können :smile:

Herzlichen Dank für Eure Anregungen,

Nichts zu danken :smile:

alex

MFG Alex