PaintEvent beim Scollen: Nicht alles neu zeichnen
-
Hi,
ich habe meine dataGridView mit einem eigenen Paint event handler erweitert, um dort was eigenes darstellen zu können.
Wenn nun gescrollt wird, löst jede Bewegung des Scrollbalkens eine Aktualisierung der Anzeige aus.Das dies zu ziemlichen flackern führt, wollte ich wissen ob es eine Hauslösung gibt, um das bereits existierende Bild zu verschieben und nur die neuen Bereiche selbst zu zeichnen.
-
Hi.
Was genau renderst Du denn?
-
Erstell dir einen Image, in das deine Zeichnung kommt, und kopiere es während des Paint events.
-
So sieht es im Moment aus:
http://nippey.dornuweb.de/files/patternGenerator.pngDigitale Signalsabfolge, zustand soll an beliebiger Stelle durch klicken geändert werden können.
@Imager:
Die Idee ist cool, aber wenn mein Pattern endlang ist, muss ich dann nicht vorsichtig sein, dass ich mir meinen RAM zukleister? Ich versuchs auf jeden Fall.
-
Probiere erstmal das:
class DoubleBufferedDataGridView : System.Windows.Forms.DataGridView { public DoubleBufferedDataGridView () { this.DoubleBuffered = true; } }
-
Oder mit Reflection:
-
Das mit Reflection klappt super!
Ich werde das noch mit dem Image im Hintergrund kombinieren um die CPU-Last beim scrollen zu reduzieren.Vielen Dank!