Flackern beim Paint von MDI-Hintergrund

Athor

Mitglied
Guten Tag zusammen

Ich bin dran eine MDI-Applikation in C# zu schreiben und bin auf ein Problem gestossen wo ich keine gute Lösung finde.

Es geht darum dass ich den Hintergrund des MDI-Parent gerne selbst gestalten möchte. Sprich Farbverlauf, oder ein Logo der Firma einblenden usw.

Nun ist es ja so dass es ein MDIClient Control gibt, welches meinen eigenen Graphiken "blockiert" da es sich über den eigentlichen Hintergrund legt.

Damit meine Darstellung trotzdem gemacht wird, hole ich mir den EventHandler dieses MDIClient Objects.

Code:
foreach (Control control in this.Controls)
         {
            if (control is MdiClient)
            {
               control.Paint += new PaintEventHandler(OnMdiClientPaint);
               break;
            }
         }

In meiner eigenen OnMdiClientPaint-Funktion rufe ich dann meine normale Paint funktion auf, welche mir dann darauf den gewünschten Hintergrund zeichnet.
private void OnMdiClientPaint(Object a, PaintEventArgs e)
{
OnPaint(e);
}

Soweit so gut.
Nun kommt das eigentliche Problem... wenn ich das Fenster vergrössere/verkleinere dann werden immer beide Paint ausgelöst. Heisst dass zuerst MDIClient sich zeichnet und dann ich nochmals meine eigenen Sachen.
Daraus resultiert logischerweise dann ein Flackern.

Gibt es eine möglichkeit die Paint-Funktion vom MDIClient zu unterbinden?
Oder bzw. diese zu überschreiben?

Wäre froh um Tips.

Grüsse
Dani
 
Zurück