Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将多个用户控件堆叠在彼此之上是否是一种良好的做法?_C#_Visual Studio_User Controls - Fatal编程技术网

C# 将多个用户控件堆叠在彼此之上是否是一种良好的做法?

C# 将多个用户控件堆叠在彼此之上是否是一种良好的做法?,c#,visual-studio,user-controls,C#,Visual Studio,User Controls,在我的C#类中,我们使用Visual Studio。我的老师说,将控件或面板堆叠在一起,并在需要时隐藏和显示它们,这确实不是一个好的做法。他们说,这一切都应该保持在不同的形式。然而,这让我感到困惑。我可以理解,如果您处于设计模式,看到所有这些控件彼此重叠会有点奇怪,但是您单独编辑它们,所以我看不出问题所在。我认为这样关闭和打开表单真的很奇怪,而且对用户来说有点奇怪 假设您有一个应用程序,您希望在其中使用多个控件。例如,假设它是一个登录/注册表单,您不想使用选项卡控件,无论出于何种原因,您希望菜单

在我的C#类中,我们使用Visual Studio。我的老师说,将控件或面板堆叠在一起,并在需要时隐藏和显示它们,这确实不是一个好的做法。他们说,这一切都应该保持在不同的形式。然而,这让我感到困惑。我可以理解,如果您处于设计模式,看到所有这些控件彼此重叠会有点奇怪,但是您单独编辑它们,所以我看不出问题所在。我认为这样关闭和打开表单真的很奇怪,而且对用户来说有点奇怪


假设您有一个应用程序,您希望在其中使用多个控件。例如,假设它是一个登录/注册表单,您不想使用选项卡控件,无论出于何种原因,您希望菜单条中的按钮在登录或注册用户控件之间切换,那么简单地隐藏/显示用户控件是否有意义?

如果我理解正确,还有第三个选项可用,即在运行时仅从父控件集合中添加/删除子控件。这避免了设计视图混乱问题以及“窗口地狱场景”。当我发现自己处于这种情况下时,我倾向于发现这是最容易维护的路线。在我看来,多个表单是一个设计决策,而且是一个相当过时的决策。多个UCs或其他控件组可以停放在一个隐藏的TabControl中,以便您可以在设计器中更轻松地访问它们。当您想要显示时,只需将父项更改为某个占位符,完成后返回到ITT选项卡页..-但这在很大程度上取决于一个细节:如果一个只用于登录一次,我确实会将它转换为自己的形式,甚至以模式显示它。我能看到这种父子层次结构吗?