Chart neu zeichnen

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von iOS78.

    Chart neu zeichnen

    Hallo in die Runde!

    ich habe schon eine Weile nichts mehr programmiert und stehe gerade ein wenig auf dem Schlauch.
    Eigentlich möchte ich lediglich ein Chart neu zeichnen lassen, wenn das DataGrid aktualisiert wurde.Die Daten stammen aus einer Access-DB und umfassen lediglich einen Datum/Zeit-Wert und eine Temperatur. Pro Minute wird ein Temperaturwert von einer SPS erfasst und in die DB geschrieben. Das aktualisieren der Access-Daten im Grid klappt wunderbar mit einem Timer, aber das Chart wird in der Form halt nicht neu gezeichnet. Nur nach erneutem öffnen der Form.

    VB.NET-Quellcode

    1. Option Strict On
    2. Option Explicit On
    3. Public Class Form2
    4. Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    5. Me.Wassertemp_KoiteichTableAdapter.Fill(Me.GWS30_DataDataSet.Wassertemp_Koiteich)
    6. End Sub
    7. Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
    8. Me.Wassertemp_KoiteichTableAdapter.Fill(Me.GWS30_DataDataSet.Wassertemp_Koiteich)
    9. End Sub
    10. End Class


    Gibt es dafür eine simple Lösung ohne viel Code?

    Danke schon mal!
    Bilder
    • Unbenannt.png

      43,94 kB, 1.249×625, 206 mal angesehen
    Hi,

    Danke für die Tipps, @KBT & @HenryV.
    Allerdings tut sich da nichts.

    VB.NET-Quellcode

    1. Public Class Form2
    2. Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    3. 'TODO: Diese Codezeile lädt Daten in die Tabelle "GWS30_DataDataSet.Wassertemp_Koiteich". Sie können sie bei Bedarf verschieben oder entfernen.
    4. Me.Wassertemp_KoiteichTableAdapter.Fill(Me.GWS30_DataDataSet.Wassertemp_Koiteich)
    5. Me.Wassertemp_KoiteichTableAdapter.Fill(Me.GWS30_DataDataSet.Wassertemp_Koiteich)
    6. End Sub
    7. Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
    8. Me.Wassertemp_KoiteichTableAdapter.Fill(Me.GWS30_DataDataSet.Wassertemp_Koiteich)
    9. Me.Chart1.Invalidate()
    10. End Sub
    11. End Class
    Invalidate zeichnet nur neu, aktualisiert aber nicht die Daten. Wie aktualisierst/lädst du diese?
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Danke für den Denkanstoss, @mrMo! :thumbsup:

    Gesucht und gefunden: Chart wird nicht aktualisiert
    An dieser Stelle auch Danke an @ErfinderDesRades!

    SO funktioniert es jetzt wie es soll:

    VB.NET-Quellcode

    1. Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
    2. Me.Wassertemp_KoiteichTableAdapter.Fill(Me.GWS30_DataDataSet.Wassertemp_Koiteich)
    3. Chart1.DataBind()
    4. End Sub