2012-06-03 16 views
36

Sto provando a creare un'applicazione di schermata principale multilayout. Ho alcuni pulsanti in alto che si collegano alla sezione principale dell'applicazione (ad esempio, la finestra di gestione per ogni entità nel modello)Come rendere WinForms UserControl riempire le dimensioni del suo contenitore

Facendo clic su uno di questi pulsanti viene visualizzato l'UserControl associato in un pannello. Il Pannello detiene gli UserControls che a loro volta detengono l'interfaccia utente.

WinForms UserControl non ha la proprietà Anchor o Dock. Proprietà Ambito

ho cercato di UserControl

AutoSize=True 

E

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

Ma questi non ha funzionato.
Nota: che carico questo controllo in modo dinamico in fase di esecuzione

+4

'UserControl' * * ha una proprietà' Dock' - eredita quella proprietà da 'Control'. Vedere la sezione Proprietà di http://msdn.microsoft.com/en-us/library/system.windows.forms.usercontrol.aspx – MvanGeest

+0

la dichiarazione di cui sopra "Il winforms usercontrol non ha la proprietà" Anchor "o" Dock " " era sbagliata. Stavo cercando "Dock" mentre su UserControl. Dovrebbe apparire solo per i comandi (bambini) aggiunti a UserControl. – codingbiz

+0

@MvanGeest si ha senso, ma perché non è presente nella griglia della proprietà del designer? – Steve

risposta

68

impostando la proprietà Dock-Fill Prova:

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

vorrei anche impostare AutoSize al default, credo sia False. Guarda come funziona ...

+3

Dall'OP: 'Winforms usercontrol non ha la proprietà" Anchor "o" Dock ". –

+0

@PaulSasik: L'OP era probabilmente errato; in caso contrario, non sarebbe un 'UserControl'. – Douglas

+2

OK, mi sorprende davvero. Sai perché questa proprietà non si trova nella griglia delle proprietà del progettista UserControl? A proposito, funziona perfettamente in runtime. – 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

Nel controllo utente evento di ridimensionamento.

private void MyTextBox_Resize(object sender, EventArgs e) 
     { 
      this.Width = textBox1.Width; 
      this.Height = textBox1.Height; 
     } 
Problemi correlati