2013-03-23 179 views
0

我正在使用C#,並且我有一個WinForms應用程序。設置與面板尺寸相關的外形尺寸

我有一個主窗體,其中包含一些按鈕,可以說按鈕A和B. 我有另一種形式,FormB有2個不同尺寸的面板。

我想要做的是,當用戶點擊按鈕A時,將顯示FormB 第一個面板的尺寸並顯示第一個面板。 並且當用戶點擊按鈕B時將顯示具有第二面板尺寸 的formB並呈現第二面板。

我知道如何在每種情況下呈現這些面板,但表格大小不會像我預期的那樣變化。

我試圖用Dock屬性,並將其設置爲填充..但沒有任何反應。

private void FormB_Load(object sender, EventArgs e) 
    { 
     panel1.Location = panel2.Location = new Point(); 
     timer1.Start(); 

     if (!first) 
     { 
      panel1.Visible = false; 
      panel2.Visible = true; 
     } 
     else 
     { 
      panel1.Visible = true; 
      panel2.Visible = false; 
     } 
     this.Dock = DockStyle.Fill; 
    } 

回答

1

,因爲你要設置的Panel不是Form的Dock屬性你應該使用panel1.Dock = DockStyle.Fillpanel2.Dock = DockStyle.Fill,不this.Dock = DockStyle.Fill

private void FormB_Load(object sender, EventArgs e) 
    { 
     panel1.Location = panel2.Location = new Point(); 
     timer1.Start(); 

     if (!first) 
     { 
      panel1.Visible = false; 
      panel2.Visible = true; 
      panel2.Dock = DockStyle.Fill; 
     } 
     else 
     { 
      panel1.Visible = true; 
      panel2.Visible = false; 
      panel1.Dock = DockStyle.Fill; 
     } 
    } 

編輯但以前的代碼將根據表格的大小而改變面板的大小。既然你要設置的窗體的大小是面板(S)的大小,那麼你應該設置Form這樣的Size屬性:

private void FormB_Load(object sender, EventArgs e) 
    { 
     panel1.Location = panel2.Location = new Point(); 
     timer1.Start(); 

     if (!first) 
     { 
      panel1.Visible = false; 
      panel2.Visible = true; 
      this.Size = new Size(panel2.Size.Width + 16, panel2.Size.Height + 38); 
     } 
     else 
     { 
      panel1.Visible = true; 
      panel2.Visible = false; 
      this.Size = new Size(panel1.Size.Width + 16, panel1.Size.Height + 38); 
     } 
    } 
+0

我也試過我之前使用Size屬性發布我的問題,但 它隱藏了面板的底部..我想我需要增加面板的高度..出於某種原因,它不會給我正確的面板高度..在設計視圖中,我看到面板正確的需要......但在運行時它隱藏了底部的一些部分 – Elior 2013-03-23 21:11:21

+0

不,只是爲了增加更多的高度和寬度,因爲邊界,我會編輯 – 2013-03-23 21:12:41

+0

謝謝我忘了邊框! – Elior 2013-03-23 21:14:12