1

我正在设计一个控件,用户可以在其中指定DisplayRectangleClientRectangle.

从我在 MSDN 文档中阅读的内容来看,DisplayRectangle只有一个 get 访问器,因此无法设置其尺寸,但这在我的控制中是必不可少的!

任何人都可以建议我如何安全地实现DisplayRectangle同时具有 get 和 set 访问器的方法吗?- 或解释为什么这是不好的做法?

谢谢。

测试:

  1. TabControl样式设置为UserPaint,并调整Alignment属性,DisplayRectangle移动以补偿选项卡的位置。假设TabControl有一个内置机制来设置 Rectangle 边界。

  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 回答