【发布时间】:2011-12-09 17:08:48
【问题描述】:
我有一个 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 个单独的控件要少,但我想知道是否还有更好的方法?我现在正在考虑使用三个面板(每个场景一个),并且只为每个面板添加必要的控件。我想知道对于这样的布局问题是否有任何最佳实践?
【问题讨论】:
-
你应该为你的控件命名。
-
哦,他们被命名了,我只是为了空间和清晰而使用默认名称。
标签: winforms layout user-interface panel