3

私は UserControl (WinForms、.net 2.0) を持っています。

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);
}

私は基本的に UserControl に境界線を描画したいのですが、すべての子コントロールでも四角形が描画されています! すべての子コントロールに対して呼び出す必要があることを読んだことはありませんが、解決策はありますか?

4

2 に答える 2

7

PaintEventArgs.ClipRectangle長方形の境界を決定するために使用するのはなぜですか? Control.ClientRectangle代わりに使用してみてください。

于 2009-03-06T22:10:07.340 に答える
4

子コントロールは親を無効にするため、このメソッドはそれぞれに対して起動されます。

パラメータとして e を使用する代わりに (e は、子であるかどうかにかかわらず、イベントを発生させたコントロールになります)、コントロール名を明示的に使用します。

于 2009-03-06T22:16:29.993 に答える