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


Anmelden zum Antworten