winform中同一区域的面板

时间:2014-01-05 16:04:44

标签: c# winforms

我目前有一个Windows窗体,我用它作为许多面板的“持有者”。所有这些面板都像页面一样使用,所以说我有一个默认面板,一个细节面板等。它们都覆盖了完全相同的区域,我使用顶部菜单来显示/隐藏正确的面板。

我遇到的问题是我无法选择一个面板进行编辑或只是将其置于前面以“设计”模式进行编辑,我目前必须继续将顶部面板发送到后面直到我得到我需要的那个。现在这没关系,但最终我的程序将有超过20个面板类型的页面,这将变得乏味。

有没有更好的方法来管理它,还是比使用面板更简单?

3 个答案:

答案 0 :(得分:4)

所有这些面板都像页面一样使用
您问题的上一行表明您应该使用TabPage而不是面板 因此,您可以使用TabControl,并在设计时和运行时轻松添加TabPage,并将您选择的控件添加到不同的TabPage(s)。
根据维基百科: - 选项卡允许在单个窗口中包含多个文档,使用选项卡作为导航窗口小部件来切换文档集。这基本上就是你想要做的。
如图所示

enter image description here

然后,您可以使用Button切换不同的TabPage或显示/隐藏TabPage。 它不仅可以解决您在设计时的设计问题,还可以提供“干净”的用户界面。希望有所帮助!

检查: - http://en.wikipedia.org/wiki/Tab_(GUI)

答案 1 :(得分:3)

请改用TabControl。它还允许您在设计时间内切换活动面板。

答案 2 :(得分:0)

如果要保留面板方法,则有一种方法可以解决一个面板变成另一个面板的问题。将面板拖到另一个面板的边界之外(这样它就不再是另一个面板的元素了),然后使用键盘上的箭头键重新放置它(即, not (使用鼠标将其拖动到另一面板上方的位置)。如果使用鼠标将面板拖动到另一面板上方的位置,该面板似乎只会成为另一面板的元素。