2013-12-09 4 views
1

내 응용 프로그램에는 두 가지 형식이 있습니다.MDI 하위 폼의 크기 조절

MDIParentForm 
Child form 

하위 양식에 패널이 있습니다. 다음은 코드입니다.

private void ChildForm_SizeChanged(object sender, EventArgs e) 
{ 
if (this.WindowState.Equals(FormWindowState.Maximized)) 
    { 
     this.lPanel.Height *= 2; 
     this.lPanel.Width *= 2; 
    } 
if (this.WindowState.Equals(FormWindowState.Normal) 
     || this.WindowState.Equals (FormWindowState.Minimized)) 
    { 
     this.lPanel.Height /= 2; 
     this.lPanel.Width /= 2; 
    } 

} 

이제 아동 양식을 최대화합니다. 작업 표시 줄에서 MDIParent Form을 최소화하십시오. 이제 MDIParent를 복원하면 Panel (즉, ChildForm)이 코드에서와 같이 두 배로 확장됩니다. 하위 폼의 컨트롤은 확장되지 않아야합니다. 이러쿵.

+0

이 방법은 작동하지 않지만 SizeChanged 이벤트는 사용자가 원하는 것보다 더 자주 실행됩니다. 더 똑똑한 코드를 작성해야합니다. 폼의 ClientSize가 충분히 클 경우에만 패널을 확장하십시오. 크기가 너무 작아지면 크기를 복원하십시오. –

답변

0

자동 크기 조정을 원하는 경우 앵커를 사용하지 않는 이유는 무엇입니까? 참조 : http://msdn.microsoft.com/en-us/library/system.windows.forms.control.anchor(v=vs.110).aspx

+0

앵커 속성은 컨트롤의 상대 위치를 유지합니다. 컨트롤의 크기를 조정한다고 생각하지 않습니다. – DhavalR

+0

또한 사이즈 변경도하고 있습니다. 컨트롤을 왼쪽 및 오른쪽으로 고정 할 경우 그런 다음 원본 컨테이너의 크기를 조정하면 컨트롤이 왼쪽과 오른쪽으로 확장됩니다. 상단과 하단에 동일합니다. 모든 방향으로 확장하려는 경우 모든 방향으로 고정 할 수 있습니다. –

+0

컨트롤의 크기를 폼 크기에 비례하여 조정합니다. 그러나 나는 특정한 가치로 확장하고 싶다. 앵커가 거기서 작동하지 않는다고 생각합니다. – DhavalR