1

我有一个 WinForms 应用程序,它有两个面板,分别包含一个用户控件组件(每个面板中一个)。但是,由于两个面板的大小相同且位置相同,因此最顶部的面板成为另一个面板的子面板。我希望能够隐藏一个面板,然后显示另一个面板:

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

但是当我隐藏 panel1 时,第二个面板也被隐藏了。

如何使 panel2 成为 panel1 的非子项?

我喜欢保持简单,因为我是 C# 编程的新手。

4

2 回答 2

1

这是设计师常见的意外。将第二个面板放在第一个面板上将使其成为第一个面板的子级。解决此问题的两种基本策略:

  • 查看 + 其他 Windows + 文档大纲。单击列表中的第二个面板并将其拖到表单中。您需要通过在“属性”窗口中键入其值来手动修复 Location 属性。

  • 将第二个面板的左上角保持在第一个面板的左侧或顶部。通过在 InitializeComponent() 调用之后分配其 Location 属性,将其放置在表单构造函数中的正确位置。

检查此答案以获得在设计时运行良好的控件,并让您在运行时轻松翻转面板。

于 2012-01-08T12:21:22.773 回答
0

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

为了解决这个问题,我通常会在窗体上的不同位置创建控件,然后使用属性手动匹配两个控件的大小位置。

于 2012-01-08T12:09:09.560 回答