Ich arbeite mit Grafiken in Windows Forms. Ich muss das Formular selbst (mit dem Namen form1
) übergeben, das die Grafikklasse Grafika()
aufruft, so dass ich während der Zeichnung form1.CreateGraphics()
verwenden kann, um auf dieses spezifische Formular zu zeichnen.übergeben Formular als ein Argument für Grafiken C#
Der Konstruktor für die Grafikklasse sieht Grafika
wie folgt aus:
public Grafika(ref Form predan)
{
grafika=predan.CreateGraphics();
//drawing on the form
}
Wie ein Formular an den Konstruktor von Grafika
so passieren, dass ich es nicht verwenden kann?
Versuchen Sie nicht, ein Graphics-Objekt cachen:
Auch Konstruktor sollte wie folgt aussehen! – TaW
Code, der 'CreateGraphics' aufruft, ist zu 99,9% wahrscheinlich falsch. Ich sehe keinen Grund zu der Annahme, dass dies eine Ausnahme ist. Alle Zeichnungen sollten als Reaktion auf das Ereignis 'Paint' erstellt werden, das Ihnen ein 'Graphics'-Objekt zur Verfügung stellt. –
Es macht Sinn, das e.Graphics-Objekt an Methoden oder Klassen zu übergeben, die die eigentliche Zeichnung ausführen, aber es dort nicht speichern (wo es bald ungültig wird), geschweige denn, eine vorübergehende neue zu erstellen, die wahrscheinlich ordnungsgemäß funktioniert. – TaW