C# 解组面板?

C# 解组面板?,c#,winforms,C#,Winforms,因此,我正在开发一个有多个屏幕的程序,这使得它有重叠的控件(按钮和列表) 我将控件放在面板中,效果很好,然后显示/隐藏面板 这也很有效 我有一个问题,现在我有好几个面板,当我把一个面板向上移动时,它会被另一个面板吸收,我需要它们分开 示例:当我将panel2移动到panel1上时,panel2将成为panel1的一部分。然后,当我执行panel1.Hide()和panel2.Show()时,panel2仍然是隐藏的,因为它是panel1的一部分。有没有一种方法可以让我在不自动成为panel1的一

因此,我正在开发一个有多个屏幕的程序,这使得它有重叠的控件(按钮和列表)

我将控件放在面板中,效果很好,然后显示/隐藏面板

这也很有效

我有一个问题,现在我有好几个面板,当我把一个面板向上移动时,它会被另一个面板吸收,我需要它们分开

示例:当我将panel2移动到panel1上时,panel2将成为panel1的一部分。然后,当我执行
panel1.Hide()
panel2.Show()
时,panel2仍然是隐藏的,因为它是panel1的一部分。有没有一种方法可以让我在不自动成为panel1的一部分的情况下将panel2解组或移动到位?(我知道我可以在面板内部显示和隐藏控件,但这会增加很多复杂性,因为我有很多控件)


也许有比使用面板更好的解决方案?

您可以使用“视图+其他窗口+文档大纲工具”窗口再次分离这些面板。将内部面板拖回父面板。然后还必须编辑Location属性以使其返回正确的位置


当然,这很烦人,而且很有可能你不得不重复这样做。有一个更好的方法,TabControl有很好的设计时支持,也有相同的“重叠面板”隐喻。您只需要在运行时隐藏选项卡。这很容易做到,请检查中的StackPanel控件。

您可以使用“视图+其他窗口+文档大纲工具”窗口再次分离这些面板。将内部面板拖回父面板。然后还必须编辑Location属性以使其返回正确的位置


当然,这很烦人,而且很有可能你不得不重复这样做。有一个更好的方法,TabControl有很好的设计时支持,也有相同的“重叠面板”隐喻。您只需要在运行时隐藏选项卡。这很容易做到,检查StackPanel控件。

解决方案是用代码来布置控件,而不是使用设计器,这样控件就可以按照您想要的方式布置,而不是在不应该的时候意外地嵌套在彼此内部。谢谢,我对这一点不太熟悉,但我签出了Form1.Designer.cs,并能够通过修改已经存在的内容来解决这个问题。谢谢解决方案是在代码中布局控件,而不是使用设计器,这样控件就可以按照您想要的方式布局,而不是在不应该的时候意外地嵌套在彼此之间。谢谢,我对这一点不太熟悉,但我签出了Form1.Designer.cs,并能够通过修改已经存在的内容来解决这个问题。谢谢假设面板不只是重叠,而是完全重合,那么是的,
TabControl
是最好的方法。好的,哇!!TabControl对我来说完全是一种方式(控制空间是一致的)。。。会让我的生活轻松很多。只有一个问题。根据您选择的内容,整个背景会发生变化。我可以将每个选项卡的颜色设置为透明,但整个选项卡控件没有颜色设置。因此,我只是有一个灰色的背景,而不是透过我的预期背景。有什么想法吗?不支持。对于透明效果,通常的建议是仔细查看WPF。我重新编写了我的程序,使整个程序都在选项卡控件中,然后只是更改了那里的背景图像。这使得整个计划更易于管理。非常感谢你的提示!!假设面板不只是重叠,而是完全重合,那么是的,
TabControl
是最好的方法。好的,哇!!TabControl对我来说完全是一种方式(控制空间是一致的)。。。会让我的生活轻松很多。只有一个问题。根据您选择的内容,整个背景会发生变化。我可以将每个选项卡的颜色设置为透明,但整个选项卡控件没有颜色设置。因此,我只是有一个灰色的背景,而不是透过我的预期背景。有什么想法吗?不支持。对于透明效果,通常的建议是仔细查看WPF。我重新编写了我的程序,使整个程序都在选项卡控件中,然后只是更改了那里的背景图像。这使得整个计划更易于管理。非常感谢你的提示!!