2012-10-07 66 views
0

我不確定這是否可以完成,但我想知道是否可以通過編程完全更改窗體上的控件,類似於安裝程序所發生的情況;當你點擊下一個按鈕時,表單不會隱藏或關閉並打開下一個表單,它會載入一組不同的控件(至少,它是這樣的)。以編程方式更改窗體控件

是否有可能在Visual Studio中用C#做到這一點?或者你必須使用標籤或隱藏面板?

回答

1

我想你要找的是UserControl。 UserControl就像您可以將其用作其他控件的容器一樣。 你可以找到一個演練here

對於您提到的安裝程序或一般嚮導,您可以爲每個步驟設計不同的UserControl,並將它們中的每一個加載到表單中的保留區域。保留區域可以是面板。 例如假設你有一個按鈕,它的嚮導步數調用一個方法參數:

UserControl _step1Control = new UcStep1Control; 
UserControl _step2Control = new UcStep2Control; 
private void SetStep(int stepNumber) 
{ 
    panel1.Controls.Clear(); 
    switch(stepNumber) 
    { 
     case 1: 
      panel.Controls.Add(_step1Control); 
      break; 
     case 2: 
      panel1.Controls.Add(_step2Control); 
      break; 
     default: 
      break; 
     } 
} 
1

是的,你可以以編程方式對控件做任何事情。您使用的設計器也會在後臺生成C#代碼。

爲了添加一個新的控件到您的表單中,您可以使用Form.Controls.Add(Control c)方法。可以使用從ControlButton,ListBox等)繼承的任何類別。要將其刪除,請使用Remove方法而不是Add

+0

謝謝,我認爲這將是類似的東西。是否可以使用設計器構建一個表單的完整視圖,然後在運行時將其加載到表單中? – Arcadian

+1

好,取決於你想如何做加載。設計器生成的內容在文件[FormName] .Designer.cs中。如果你看看那裏,你會發現完全正確的C#代碼,你可以複製/粘貼(通過一些調整)到你自己的方法中。 – alegen

相關問題