2012-01-08 93 views
1

我有一个WinForms应用程序,它有两个分别包含一个usercontrol组件(每个面板一个)的面板。如何,因为两个面板是相同的大小,并在同一个位置,最上面的面板成为另一个面板的孩子。我希望能够隐藏一个面板,然后显示其他面板:重叠面板时防止子组件

this.panel1.visibile = false; 
this.panel2.visibile = true; 

但是,当我躲在PANEL1,第二面板被隐藏。

我该如何让panel2成为panel1的非孩子?

我喜欢让事情变得简单,因为我是C#编程新手。

回答

0

这是设计师常见的事故。将第二个面板放在第一个面板的顶部将使其成为第一个面板的孩子。解决此问题的两个基本策略:

  • 查看+其他Windows +文档大纲。单击列表中的第二个面板并将其拖到窗体中。您需要手动修复位置属性,方法是在属性窗口中键入其值。

  • 将第二个面板的左上角稍微留在第一个面板的左侧或顶部。通过在InitializeComponent()调用之后分配其Location属性,将它放在窗体构造函数的正确位置。

检查this answer为在设计时运行良好的控件,并让您在运行时轻松地翻转面板。

+0

感谢,初始化它在initializeComponent()工作魅力 – 2012-01-09 15:40:00

0

设计人员会自动执行此操作,因为它假定当您将一个控件拖到另一个控件上时,您希望使其成为该控件的子控件。

我通常会做的是在窗体上的不同位置创建控件,然后使用属性手动匹配两个控件的大小位置。