Paint-Event-Handler...
-
In meinem Paint-Event-Handler möchte ich e.Graphics.FillRectangle(mybrush, 10, 10, Width-20, Heigth-50); anzeigen lassen. Wenn Ich das Programm starte, und das Fenster nach rechts unten ziehe, wird das Rechteck nicht angepasst. e.Graphics.FillRectangle(mybrush, ClientRectangle); geht allerdings. Kann es sein, dass Width und Heigth erst am Ende des Paint-Handlers berechnet werden ? Weiss jemand Rat ?
-
Noch ein Nachtrag: Es hätte oben auch e.Graphics.FillRectangle(mybrush, new Rectangle(10, 10, Width-30, Heigt-50)); heissen können, mit dem gleichen Effekt.
-
Hallo,
hast du das Paint-Event denn für die Form oder aber für ein Control (z.B. ein Panel) registriert (denn die Positionsangaben sind immer relativ zum Parent-Control)?
Und statt Width und Height sollte man sowieso besser ClientRectangle.Width und ClientRectangle.Height benutzen (da der Rand sonst noch falsch miteingerechnet wird).
-
Und nicht vergessen, an passender Stelle Control.Invalidate() aufzurufen, damit überhaupt neu gezeichnet wird.
-
Beim Ziehen des Fensters, wird automatisch der PaintEvent-Handler aufgerufen.
-
Des Rätsels Lösung: Die Eigenschaft ResizeReDraw muss im Konstruktor, auf true gesetzt werden. Sonst wir nur Unsinn gezeichnet. Jedenfalls bei FillEllipse .. Tschüüsss ...