Label.text aufzeichnen

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Label.text aufzeichnen

    Hallo Gemeinde.

    Leider habe ich in der Suche nichts passendes gefunden.
    Ich habe auf einer Form eine menge Labels die mir Werte anzeigen.
    Diese Werte würde ich gerne mitloggen.
    Diese Werte würde ich gerne später in zb Excel bearbeiten wie zb ein Diagramm oder ähnliches erstellen.

    Kann mir wer helfen ich weiß nicht wie ich anfagen soll.
    Danke
    Mach das in einer Property.
    1. Loggen, 2. Text setzen.
    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!
    Das TextChanged-Event wäre dafür auch geeignet ...
    Beispiel:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private _logFile As String = IO.Path.Combine(IO.Path.GetTempPath, "trash.log")
    3. Private _rdm As New Random
    4. Private Sub Label_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.TextChanged, Label9.TextChanged, Label8.TextChanged, Label7.TextChanged, Label6.TextChanged, Label5.TextChanged, Label4.TextChanged, Label3.TextChanged, Label2.TextChanged
    5. Dim lbl = DirectCast(sender, Label)
    6. Dim content = String.Format("{0} - Label: '{1}' - Inhalt: {2}", Now.ToString, lbl.Name, lbl.Text)
    7. IO.File.AppendAllText(_logFile, content & Environment.NewLine)
    8. End Sub
    9. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    10. For Each ctrl In Me.Controls.OfType(Of Label)()
    11. ctrl.Text = _rdm.Next(1, 1000000).ToString
    12. Next
    13. End Sub
    14. End Class
    Nur so als dumme Frage: Was spricht dagegen, die Werte einfach in dem Moment zu loggen, in dem und sie in eines der Labels schreibst? Sprich eine simple statische Logger Class erstellen, die dann die Zugriffe verwaltet? (Code folgt bei Bedarf, hab aktuell keine IDE zur Hand)


    Oder hab ich irgendetwas übersehen, was diese Variante ausschließt? ^^

    Gruß Christian

    s_ollis schrieb:

    Leider verstehe ich nicht was du meinst.
    Wir sind im Hauptforum.

    VB.NET-Quellcode

    1. Public Property Label1Text As String
    2. Set(value As String)
    3. If Label1.Text <> value Then
    4. LogLabel1Text()
    5. End If
    6. Label1.Text = value
    7. End Set
    8. Get
    9. Return Label1.Text
    10. End Get
    11. End Property
    In der Prozedur LogLabel1Text() kannst Du machen was immer Du willst, und sie wird hier nur dann aufgerufen, wenn sich der Text tatsächlich ändert.
    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!