在设计需要大量组件的表单时,您可以使用多种方法来获得所需的结果。看着一些可能性...
方法 1:为每个配置创建单独的表单
这不是一个坏主意,因为在用户做出选择后,您可以创建所需表单的新实例,但设置所有单独的表单需要一些时间,但并不困难。
方法 2:为每个配置创建多个面板
这与方法一类似,只是您最初会隐藏所有面板,然后显示用户选择的面板。您可以提前创建面板并隐藏或显示,也可以在运行时以编程方式进行。(如果您以非编程方式执行面板,那么在我看来,隐藏大量组件的面板有点不合适)
方法3;以编程方式创建所需的组件
您可以只编写代码来根据用户的选择生成所需的组件。
例子:
if(comboBox1.SelectedIndex == 0)
{
ComboBox selection1 = new ComoboBox();
selection1.Location = new Point(XXX,YYY); //Set location
//You can add the events for the combobox, set up the properties
form1.Controls.Add(selection1); //Add the component to the form or panel that you want it displayed on
//Write code to dynamically create next object(s)....
}
else if (comboBox1.SelectedIndex == 1)
{
//Programmatically create components for selection2
}
其中我认为方法 1 是最简单的,因为它只是将组件放置在表单上,但这会很耗时。在我看来,以编程方式可能是最优雅的,只要您为不同的可能性保持良好的代码组织,并且您没有大量的表单或面板需要处理。你只会弄乱组件。但是,当以编程方式创建组件时,分配属性也可能很耗时。
我不是 100% 确定最正式的方法是什么,但这些只是一些想法。
希望这可以帮助。