1

DisplayRectangleユーザーがプロパティの X、Y、幅、高さを に関連して指定できるコントロールを設計していClientRectangleます。

私がMSDNのドキュメントで読んだことからDisplayRectangle、 get アクセサーしかないため、その寸法を設定することはできませんが、これは私の管理では不可欠です!

DisplayRectangleget アクセサーと set アクセサーの両方を安全に実装する方法を提案できる人はいますか? -または、なぜこれが悪い習慣なのか説明してください。

ありがとう。

テスト:

  1. TabControlスタイルをに設定し、プロパティUserPaintを調整して、タブの位置を補うように移動します。Rectangle 境界を設定するメカニズムが組み込まれていると仮定します。AlignmentDisplayRectangleTabControl

  2. を作成し、赤と青DemoControl : Controlでペイントして呼び出してみました...私が望んでいたものとはまったく異なります...そして結果は得られませんでした!ClientRectangleDisplayRectangleSetDisplayRectLocation(x, y)

4

1 に答える 1

1

ユーザーがコントロールの DisplayRectangle プロパティの境界を設定できるようにするために、次の解決策を考え出しました。

public class ExtendedControl : Control
{
    private Rectangle displayRectangle;

    protected override Rectangle DisplayRectangle
    {
        get { return this.displayRectangle; }
    }

    public void SetDisplayRectangle(Rectangle rect)
    {
        this.displayRectangle = rect;
    }

    public ExtendedControl()
    {
        this.displayRectangle = base.DisplayRectangle;
    }
}
于 2012-10-19T07:40:22.600 に答える