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

6g8kf2rb  于 2023-05-07  发布在  其他
关注(0)|答案(5)|浏览(299)

我在窗体的同一位置使用不同的控件集。默认情况下,所有控件都是visible=false,然后当用户在组合框下拉控件中选择特定值时,控件的某些子集被设置为visible。
从用户的Angular 来看,这工作得很好,因为他们只看到需要的控件。
但是,由于控件在窗体上占据相同的位置,因此很难在VisualStudio设计视图中管理这些控件。
有没有一种方法可以在Visual Studio中对这些重叠控件的集合进行分组,以便我可以快速轻松地选择整个控件子集?是否有方法在设计视图中隐藏某些控件?现在,在开发时,所有内容都是堆叠在一起的,因此管理这些控件很困难。

ilmyapht

ilmyapht1#

为了让这样一个野兽工作,我会把每个组放入它自己的UserControl中。在MainForm上,您可以将所有这些UserControl堆叠在彼此之上。
所以在MainForm中,你不能真正得到一个很好的概述,但是现在你为每个组都有了一个单独的设计师视图,在你的主窗体中,你可以通过一行代码userControl.Visible = false隐藏整个组。

tvz2xvvm

tvz2xvvm2#

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

dw1jzc5e

dw1jzc5e3#

你不能隐藏它们。
但是,您可以在分组框中对它们进行分组,并使用“带到前面”和“发送到后面”属性处理它们。

6gpjuf90

6gpjuf904#

这可能听起来很普通,但我的设计实践和哲学可以总结为:
1.如果一个页面上有太多的控件,那么可以肯定的是,在运行时,同一页面上不会同时需要这些控件。因此,将它们分组到可以在其自己的页上进行编辑的用户控件中似乎是有效的。
1.当单独创建用户控件时,在窗体上实现它们甚至不一定需要设计页。它们可以在运行时S/W中操作(位置、大小、颜色等),如在“表单激活”例程中。
1.将它们视为用户控件不仅会将它们从设计页面中隐藏起来,还会将它们从S/W中隐藏起来,并将它们打包在紧凑单元(DLL)中,以便在发生.NET版本更改或其他库更改等事件时更容易处理。
1.拥有单独的用户控件解决方案还提供了将测试程序项目与之打包在一起的机会,在那里您可以更准确地测试控件的性能并进行必要的改进。
1.这种方法更符合OOP原则,并鼓励这些控件的标准化和多用途。
1.最后但并非最不重要的:如果窗体页中的控件越来越多,那么在设计时,一个大的监视器肯定是必须的,记住VS缩放在设计和运行时都不能很好地工作。即使完美的缩放是可能的,当尺寸改变时,页面看起来仍然是不可接受的。
出于所有这些原因,我建议利用用户控件。

x3naxklr

x3naxklr5#

首先
如果在同一位置使用多个组件,则可以在窗体中使用分组框。然后,要叠加这些组框,您应该在表单屏幕的不同位置编辑每个组框。编辑后,您应该在groupbox属性菜单中手动输入大小和位置数据。
如果你想在设置的位置之后编辑一个群框,你可以很容易地右键单击任何一个群框,然后单击“发送到后面”和“带到前面”命令。希望能帮上忙。

相关问题