/ / Grafik- und Paint-Ereignis - c #, winforms

Grafik- und Malereignis - c #, winforms

Ich habe etwas auf meine Form gezeichnet

Aber nach dem Minimieren und Wiederherstellen des Formulars wird das Formular geklärt. Was könnte das Problem sein?

Und dieser Code ist falsch: (JIT sagt :)

private void Form1_Paint(object sender, PaintEventArgs e)
{
grForm = e.Graphics;
}

Weil die Begrenzungsgrenze von grForm kleiner als Null oder zu groß ist.

Antworten:

1 für die Antwort № 1

Sie können den e nicht speichern.Grafikobjekt, das Sie im Paint-Ereignis erhalten. Es ist nur gültig, während das Paint-Ereignis ausgeführt wird, es wird direkt danach entsorgt. Die CreateGraphics () -Methode des Formulars funktioniert auch nicht, sie wird ausgelöscht, sobald das Formular neu gezeichnet werden muss. Wenn Sie es zum Beispiel minimieren und wiederherstellen.

Sie müssen die Methode Invalidate () des Formulars verwendenErzwingen Sie, dass das Paint-Ereignis erneut ausgeführt wird. Zeichnen Sie dann, was gezeichnet werden soll. Wenn Sie möchten, dass die Zeichnung dauerhaft ist, müssen Sie eine Bitmap zeichnen. Verwenden Sie e.Graphics.DrawImage () im Paint-Ereignis, um die Bitmap zu zeichnen. Dies ist nicht der beste Weg, nur das Neuzeichnen, wann immer es notwendig ist, ist das Beste.