2012-06-03 1 views
36

다중 행 메인 스크린 응용 프로그램을 만들려고합니다. 맨 위에 응용 프로그램의 주요 섹션 (예 : 모델의 각 엔티티에 대한 관리 창)에 연결된 버튼이 있습니다.WinForms UserControl이 컨테이너 크기를 채우는 방법

이러한 버튼 중 하나를 클릭하면 패널에 연결된 UserControl이 표시됩니다. Panel에는 UI가있는 UserControls가 있습니다.

WinForms UserControl에는 Anchor 또는 Dock 속성이 없습니다. UserControl을의

내가 시도 설정 속성은

AutoSize=True 

그리고

private void ManageUsersControl_Load(object sender, EventArgs e) 
{ 
     this.Width = this.Parent.Width; 
     this.Width = this.Parent.Height; 
} 

하지만이 작동하지 않았다.
참고 : 나는 False 믿고,

private void ManageUsersControl_Load(object sender, EventArgs e) 
{ 
     this.Dock = DockStyle.Fill; 
} 

가 나는 또한 기본에 AutoSize을 설정합니다 : 나는 런타임에 동적으로 FillDock 속성을 설정

+4

'UserControl' *은'Dock' 속성을 가지고 있습니다 -'Control'에서 그 속성을 상속받습니다. http://msdn.microsoft.com/en-us/library/system.windows.forms.usercontrol.aspx – MvanGeest

+0

위의 문 "winforms usercontrol"앵커 "또는"도킹 "속성을 있지 않은 속성 섹션을 참조하십시오 "틀렸어. UserControl에서 "Dock"을 찾고있었습니다. UserControl에 추가 된 컨트롤 (자식)에만 표시되어야합니다. – codingbiz

+0

@MvanGeest 그렇습니다.하지만 디자이너 속성 표에 왜 나타나지 않습니까? – Steve

답변

68

시도를이 컨트롤을로드합니다. 어떻게 작동하는지보십시오 ...

+3

OP :'winforms usercontrol에는 "앵커"또는 "독"속성이 없습니다. –

+0

@PaulSasik : OP가 잘못 입력 된 것 같습니다. 그렇지 않으면'UserControl'이 아닐 것입니다. – Douglas

+2

OK이게 정말 놀랍습니다. 이 속성이 UserControl 디자이너 속성 표에없는 이유를 알고 계십니까? 그건 그렇고, 런타임에 완벽하게 작동합니다. – Steve

-1
UserControl1 myusercontrol = new UserControl1(); 
      myusercontrol.Dock = DockStyle.Fill;//Dock Prope. Fill user Control Contrainer 
      TabPage myTabPage = new TabPage();//New Tab Create 
      myTabPage.Text = "Wel-Come Page";//Tab Header Txt 
      myTabPage.Controls.Add(myusercontrol); 
      tabControl1.TabPages.Add(myTabPage); 
-3

resize 이벤트 사용자 정의 컨트롤에서.

private void MyTextBox_Resize(object sender, EventArgs e) 
     { 
      this.Width = textBox1.Width; 
      this.Height = textBox1.Height; 
     } 
관련 문제