0

我正在尝试调整自定义面板控件的大小,以使其在宽度上适合父容器。当我检查控件值时,它们都是相同的,但是子控件对于父控件来说太宽了。

是什么导致了差异?我希望能够计算出正确的尺寸。我尝试更改填充和边距选项,但这没有任何效果。

向右延伸太远

[Category("Collapsible Panel")]
[DesignOnly(true)]
[DefaultValue(false)]
[Description("If True, fits the panel to match the parent width")]
public bool FitToParent
{
    get { return _fitToParent; }
    set { 
        _fitToParent = value;
            if (_fitToParent)
            {
                if (this.Parent != null)
                {
                    this.Location = new Point(0, this.Location.Y);
                    this.Size = new Size(this.Parent.Size.Width, this.Size.Height);
                    this.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
                }
            }
            else
            {
                this.Anchor = AnchorStyles.Top | AnchorStyles.Left;
            }
    }
}
4

1 回答 1

4

使用ClientSize表单和控件。

control.ClientSize.Width

form.Width或者control.Width是包括边框的外部宽度。这ClientRectangle是可以放置其他控件的边框之间的内容,并且ClientSize是该内部矩形的大小。

于 2012-12-08T20:53:36.623 回答