레이아웃 컨트롤이 왼쪽, 가운데 및 오른쪽의 세 부분으로 나뉘어져있는 폼이 있습니다. 기본적으로 올바른 레이아웃 컨트롤 항목 (두 개의 격자가 있음)은 숨겨져 있습니다. 두 개의 격자를 보여주기 위해 폼을 오른쪽으로 확장하는 버튼이 폼에 있습니다. 버튼을 다시 클릭하면 오른쪽 레이아웃 컨트롤 항목이 숨겨지고 양식의 크기가 다시 변경됩니다. 기본 기능은 정상적으로 작동하지만 사용자가 단추를 누를 때 MinimumSize를 업데이트하고 싶습니다. 따라서 폼이 확장되어있는 동안 최소 너비를 늘려야합니다. 이것은 내 현재 코드 :양식의 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 = 새 크기 (689, this.MinimumSize.Height);
라인이 MinimumSize를 올바르게 업데이트하지 않습니다. 왜 그런가?
what's 정확히 잘못 다른 곳 (1100 세트 폭)을 오버라이드 (override) 변경 hasn't 경우? – Nogard
아무 것도하지 않는 것뿐입니다. 이 시점에서 this.MinimumSize.Width는 1100이고 해당 행을 실행 한 후에도 양식의 원래 너비 인 689로 변경되는 대신 1100으로 유지됩니다. – Antrim
이것은 SuspendLayout() 때문에 정상입니다. 'this.ResumeLayout();'이 변수가 변경되지 않으면이 속성을 다른 곳에서 재정의했을 수 있습니다. – Nogard