C# Zeichnen
-
Hallo!
Ich hätte da eine Frage zum Zeichnen in einem Formular.
Wenn ich folgenden Code im erreignis "Paint" des Formulars ausführe, wird die alte Zeichnung nicht gelöscht.System.Drawing.Pen myPen; myPen = new System.Drawing.Pen(System.Drawing.Color.Black); System.Drawing.Graphics formGraphics = this.CreateGraphics(); formGraphics.DrawLine(myPen, Width / 2 , 0 ,Width/2 ,Height); formGraphics.DrawLine(myPen, 0,Height/2,Width,Height/2); myPen.Dispose(); formGraphics.Dispose();Wenn man z.B. die Formulargröße ändert, wird die Linie dann mehrmals gezeichnet.
Wie kann ich denn die Alte zeichnung Automatsich löschen lassen?
Mit Refresh(); geht das zwar, dann wird das Formular aber immer Wieder neugezeichnet.
-
Im Paint-Ereignis solltest du niemals CreateGraphics() aufrufen, sondern immer den übergebenen Wert: e.Graphics.
Dann hast du auch kein Problem mehr mit dem Löschen...Hier noch ein Artikel aus einem anderen Forum:
http://www.mycsharp.de/wbb2/thread.php?threadid=21782