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 ...


Anmelden zum Antworten