Frage

Ich habe ein UserControl (WinForms, .net 2.0), und ich habe dies:

protected override void OnPaint(PaintEventArgs e)
{
    base.OnPaint(e);

    var rect = e.ClipRectangle;
    var pen = new Pen(Brushes.LightGray, 1);

    e.Graphics.DrawRectangle(pen, rect);
}

Ich im Grunde wollen, ziehen eine Grenze auf die UserControl, aber das Rechteck wird ziehen in alle untergeordneten Steuerelemente zu!Ich habe nie gelesen, es sollte aufgerufen werden, für jedes Kind zu kontrollieren, gibt es eine Lösung?

War es hilfreich?

Lösung

Da die untergeordneten Steuerelemente ungültig machen die Eltern, so dass dieses Verfahren für jeden abgefeuert werden.

Stattdessen e als Parameter verwenden (e sein wird je nachdem, welche Steuerung das Ereignis, Kind entlassen oder nicht) die Steuer Namen explicity.

Andere Tipps

Warum verwenden Sie PaintEventArgs.ClipRectangle um zu bestimmen, die Grenzen des Rechtecks?Versuchen Sie es mit Control.ClientRectangle statt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top