Form's MinimumSize没有正确更新

本文关键字:更新 MinimumSize Form | 更新日期: 2023-09-27 17:49:24

我有一个布局控件分为左、中、右三部分的表单。默认情况下,右布局控件项(有一对网格)是隐藏的。表单中有一个按钮,它将表单向右展开,以显示两个网格。再次单击该按钮时,它将隐藏正确的布局控件项并再次更改窗体的大小。基本功能工作得很好,但我也想更新MinimumSize当用户按下按钮(所以当表单被扩展时,最小宽度应该增加)。这是我当前的代码:

private void btnExpand_Click(object sender, EventArgs e)
    {
        this.SuspendLayout( );
        switch (lciRight.Visibility)
        {
            case LayoutVisibility.Never:
                LoadGrids();
                lciRight.Visibility = LayoutVisibility.Always;
                this.Width += lciRight.Width;
                this.MinimumSize = new Size(this.Width, this.MinimumSize.Height);
                btnExpand.Text = "<<";
                break;
            case LayoutVisibility.Always:
                lciRight.Visibility = LayoutVisibility.Never;
                this.MinimumSize = new Size(689, this.MinimumSize.Height);
                this.Width -= lciRight.Width;
                btnExpand.Text = ">>";
                break;
            default:
                break;
        }
        this.ResumeLayout();
    }

我遇到的问题是当表单已经展开时我们点击按钮让它保持原来的大小还是

。MinimumSize = new Size(689, this.MinimumSize.Height);

行没有正确更新MinimumSize。知道为什么吗?

Form's MinimumSize没有正确更新

这是一个非常简单的函数。

请考虑在执行以下行后检查此属性(以及任何其他与布局相关的属性)的更改:

  this.ResumeLayout();

原因是SuspendLayout()挂起所有控件布局的更改,以提高应用程序的性能。

如果属性仍然没有改变,你很可能在其他地方重写它(设置宽度为1100)