左、中央、右の 3 つの部分に分割されたレイアウト コントロールを持つフォームがあります。デフォルトでは、右側のレイアウト コントロール項目 (2 つのグリッドがある) は非表示になっています。フォームを右側に展開して 2 つのグリッドを表示するボタンがフォームにあります。ボタンをもう一度クリックすると、右のレイアウト コントロール項目が非表示になり、フォームのサイズが再び変更されます。基本的な機能は正常に動作していますが、ユーザーがボタンを押したときに 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 を正しく更新していません。理由はありますか?