In C# WinForms - Sto disegnando un grafico a linee in tempo reale basato su dati ricevuti tramite porta seriale ogni 500 ms.Forza modulo da ridisegnare?
La logica e.Graphics.DrawLine è all'interno del gestore OnPaint del modulo.
Una volta ricevuti i dati dalla porta seriale, è necessario chiamare qualcosa che causa il ridisegno del modulo in modo che venga richiamato il gestore di OnPaint. Ho provato questo.Refresh e questo.Invalidate, e ciò che accade è che perdo tutto ciò che è stato disegnato in precedenza sul modulo.
C'è un altro modo per raggiungere questo obiettivo senza perdere ciò che è stato disegnato sul modulo?
Grazie - funziona bene. Domanda veloce - Sto disegnando questo grafico a linee in tempo reale - alla fine ho intenzione di superare la larghezza massima disponibile sullo schermo, quindi voglio che le linee che ho disegnato sul modulo si spostino leggermente a sinistra, per fare spazio per il tracciamento delle nuove coordinate. Qualche suggerimento su come fare questo? Fondamentalmente sto sviluppando un'applicazione di tipo ECG semplice. – Chris
Ci sono molti modi per farlo. Ad esempio, è possibile utilizzare e.Graphics.TranslateTransform (-x, 0); Ciò rende tutti i tuoi grafici da disegnare spostati a sinistra di x pixel. – Zenya