使用面板组织WinForms控件

时间:2011-10-18 00:34:59

标签: winforms layout user-interface panel

我有一个Windows窗体应用程序,其中包含一个包含大约30个控件的组框。为了举例,我们假设有15个标签和15个文本框。此组框及其中的控件用于显示三种不同的方案:

场景1 - 要求所有控件都可见

场景2 - 要求标签/文本框#1,4,11和14可见,其他要隐藏

场景3 - 要求标签/文本框#3,9,11和13可见,其他要隐藏

情景1显然很简单。但另外两种情况还有一些工作要做。最初,我编写代码来手动显示/隐藏每个控件,如下所示:

ConfigureUIForScenario2()
{
    label1.visible = true;
    textbox1.visible = true;
    label2.visible = false;
    textbox2.visible = false;
    label3.visible = false;
    textbox3.visible = false;
    label4.visible = true;
    textbox4.visible = true;
    ...
}

这是非常笨拙的,似乎必须有另一种方式。我正在查看面板来组织控件,但由于场景2和3中需要显示/隐藏的控件通常彼此不相邻,因此该想法产生的最佳效果是能够放置每个标签和相应的文本框进入面板并显示/隐藏面板。当然,设置15个面板的可见性比手动设置30个独立控件要少,但我想知道是否还有更好的方法呢?我现在正在考虑有三个面板(每个场景一个),并且只为每个面板添加必要的控件。我想知道是否有关于这样的布局问题的最佳实践?

1 个答案:

答案 0 :(得分:2)

您可以为每个方案创建List<Control>Control[],然后循环浏览列表中的控件并根据需要设置其Visible属性。