以编程方式更改表单控件

时间:2012-10-07 10:48:28

标签: c# .net winforms visual-studio-2012

我不确定是否可以这样做,但我想知道是否可以通过编程方式完全改变表单上的控件,类似于安装程序所发生的情况;当您单击下一个按钮时,表单不会隐藏或关闭并打开下一个表单,它会加载一组不同的控件(至少,这就是它的显示方式)。

是否可以在Visual Studio中使用C#执行此操作?或者您是否必须使用标签或隐藏面板?

2 个答案:

答案 0 :(得分:1)

是的,您可以以编程方式对控件执行任何操作。您使用的设计器也会在后台生成C#代码。

要向表单添加新控件,请使用Form.Controls.Add(Control c)方法。可以使用任何继承自ControlButtonListBox等)的类。要将其删除,请使用Remove方法代替Add

答案 1 :(得分: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;
      }
}