Moin Leute.
Des öfteren kamen im Forum Fragen, woher der aktuelle Aufruf kam. Da gab es die Möglichkeit, dies über eine
Andersherum bietet sich die Möglichkeit, mit der Übergabe einer
Als Beispiel habe ich eine kleine GUI mit 3 Button und 3 CheckBoxen:
Spoiler anzeigen
Der Output ist dieser:
So lässt sich die Aufruf-Reihenfolge und weitere Informationen zu den Controls sehr einfach ermitteln und loggen.
Des öfteren kamen im Forum Fragen, woher der aktuelle Aufruf kam. Da gab es die Möglichkeit, dies über eine
StackTrace
-Instanz aufzuklären.Andersherum bietet sich die Möglichkeit, mit der Übergabe einer
MemberInfo.GetCurrentMethod()
-Instanz die erforderlichen Informationen zum Befüllen eines LogFiles zu bekommen.Als Beispiel habe ich eine kleine GUI mit 3 Button und 3 CheckBoxen:
VB.NET-Quellcode
- Imports System.Reflection
- Public Class Form1
- Private Sub AllButton_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.Click, Button3.Click
- Log(MethodInfo.GetCurrentMethod(), sender)
- End Sub
- Private Sub AllCheckBox_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged, CheckBox2.CheckedChanged, CheckBox3.CheckedChanged
- Log(MethodInfo.GetCurrentMethod(), sender)
- End Sub
- Public Shared Sub Log(ByVal caller As MemberInfo, sender As Object)
- Dim message = "other Control"
- If sender.GetType() Is GetType(Button) Then
- Dim btn = CType(sender, Button)
- message = btn.Name
- ElseIf sender.GetType() Is GetType(CheckBox) Then
- Dim btn = CType(sender, CheckBox)
- message = String.Format("{0} {{{1}}}", btn.Name, btn.Checked)
- End If
- Debug.WriteLine(String.Format("{0}.{1} - {2}", caller.DeclaringType.Name, caller.Name, message))
- End Sub
- End Class
Quellcode
- Form1.AllButton_Click - Button1
- Form1.AllButton_Click - Button2
- Form1.AllButton_Click - Button3
- Form1.AllCheckBox_CheckedChanged - CheckBox1 {True}
- Form1.AllCheckBox_CheckedChanged - CheckBox1 {False}
- Form1.AllCheckBox_CheckedChanged - CheckBox2 {True}
- Form1.AllCheckBox_CheckedChanged - CheckBox3 {True}
- Form1.AllCheckBox_CheckedChanged - CheckBox2 {False}
- Form1.AllCheckBox_CheckedChanged - CheckBox3 {False}
Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert!
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert!