我有一个布局控件的表单,它分为左、中、右三部分。默认情况下,右侧的布局控件项(有几个网格)是隐藏的。表单中有一个按钮,可将表单向右展开以显示两个网格。当您再次单击该按钮时,它会隐藏右侧的布局控件项并再次更改表单的大小。基本功能运行良好,但我还想在用户按下按钮时更新 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();
}
我遇到的问题是,当表单已经展开并且我们单击按钮使其再次变为原始大小时,
this.MinimumSize = new Size(689, this.MinimumSize.Height);
行没有正确更新 MinimumSize。知道为什么吗?