问题 在Visual Studio中管理大量重叠控件


我在表单上的相同位置使用不同的控件集。默认情况下,所有都是visible = false,然后当用户在组合框下拉控件中选择特定值时,控件的某些子集将设置为可见。

从用户的角度来看,这很有效,因为他们只能看到所需的控件。

但是,由于控件占用表单上的相同位置,因此很难在Visual Studio设计视图中管理这些控件。

有没有办法在Visual Studio中对这些重叠控件的集合进行分组,以便我可以快速轻松地选择整个控件子集?有没有办法在设计视图中隐藏某些控件?现在,在开发时,所有东西都堆叠在一起,因此难以管理这些控件。


8886
2018-06-02 10:33


起源



答案:


为了让这样的野兽工作,我会把每个组都放入它自己的UserControl中。在您的MainForm上,您将所有这些UserControl堆叠在彼此之上。

因此,在MainForm中,您无法获得良好的概述,但现在您可以获得每个组的个人设计器视图,并且在主窗体中,您可以通过一行代码隐藏整个组 userControl.Visible = false


10
2018-06-02 10:51



不知道为什么我没有想到这一点,但这完美无缺。谢谢! - Dave
我对这一切都很陌生。究竟如何进入GroupBox的设计器视图? - Bernhard
@Bernhard:很容易。如果双击表单上的解决方案资源管理器或用户控件,Visual Studio将默认打开设计器视图。但是,如果您当前正在查看表单或控件的代码,您也可以直接右键单击代码中的某个位置并选择 设计视图 从上下文菜单中。 - Oliver
@Oliver然后我仍然看到完整的表格,对吗?不仅仅是GroupBox? - Bernhard
@Bernhard:那是真的。但你可以创建一个 UserControl 然后可以由设计师自己打开和配置。运行编译器后,此控件也会显示在工具箱中,您可以将其添加到主窗体中。 - Oliver


答案:


为了让这样的野兽工作,我会把每个组都放入它自己的UserControl中。在您的MainForm上,您将所有这些UserControl堆叠在彼此之上。

因此,在MainForm中,您无法获得良好的概述,但现在您可以获得每个组的个人设计器视图,并且在主窗体中,您可以通过一行代码隐藏整个组 userControl.Visible = false


10
2018-06-02 10:51



不知道为什么我没有想到这一点,但这完美无缺。谢谢! - Dave
我对这一切都很陌生。究竟如何进入GroupBox的设计器视图? - Bernhard
@Bernhard:很容易。如果双击表单上的解决方案资源管理器或用户控件,Visual Studio将默认打开设计器视图。但是,如果您当前正在查看表单或控件的代码,您也可以直接右键单击代码中的某个位置并选择 设计视图 从上下文菜单中。 - Oliver
@Oliver然后我仍然看到完整的表格,对吗?不仅仅是GroupBox? - Bernhard
@Bernhard:那是真的。但你可以创建一个 UserControl 然后可以由设计师自己打开和配置。运行编译器后,此控件也会显示在工具箱中,您可以将其添加到主窗体中。 - Oliver


TabControl可以做到这一点,在设计模式下运行良好。您只需要在运行时隐藏选项卡。检查我的代码 这个帖子


4
2018-06-02 11:17



啊 - 这也是一个好主意! - Dave
我认为这个想法在大多数情况下优于Oliver的答案,因为它允许您按场景对控件进行分组。在几乎所有适用的情况下,控件都是特定于场景/上下文的,因此这种方法不仅可以更容易地一次只查看几个控件,而且只能查看用户一起看到的控件。 - Max von Hippel


你无法隐藏它们。

但是,您可以将它们分组在组框中 并使用“Bring to front”和“Send to back”属性处理它们。


0
2018-06-02 10:51



这不起作用,一旦一个重叠另一个它就成为它的一部分。 - Neil Walker


首先,

如果您在同一位置使用多个组件,则可以在表单中使用组框。然后,要叠加这些组框,您应该在表单屏幕的不同位置编辑每个组框。编辑后,您应该在groupbox属性菜单中手动输入大小和位置数据。

如果要在设置位置后编辑其中一个组框,则可以轻松地右键单击任何组框,然后单击“发送回”和“引入前面”命令。我希望它有所帮助。


-1
2017-10-02 07:04