我不确定是否可以这样做,但我想知道是否可以通过编程方式完全改变表单上的控件,类似于安装程序所发生的情况;当您单击下一个按钮时,表单不会隐藏或关闭并打开下一个表单,它会加载一组不同的控件(至少,这就是它的显示方式)。
是否可以在Visual Studio中使用C#执行此操作?或者您是否必须使用标签或隐藏面板?
答案 0 :(得分:1)
是的,您可以以编程方式对控件执行任何操作。您使用的设计器也会在后台生成C#代码。
要向表单添加新控件,请使用Form.Controls.Add(Control c)
方法。可以使用任何继承自Control
(Button
,ListBox
等)的类。要将其删除,请使用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;
}
}