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.Widthorcontrol.Widthは境界線を含む外側の幅です。ClientRectangleは、他のコントロールを配置できる境界線の間にあるもので、ClientSizeこの内側の四角形のサイズです。

于 2012-12-08T20:53:36.623 に答える