C# C语言中的屏幕层次结构#

C# C语言中的屏幕层次结构#,c#,winforms,C#,Winforms,我正在编写一个基于C#表单的应用程序,我想知道屏幕层次结构是如何布置的,使用了哪些组件 应用程序流程非常类似于一个带有一个主窗口的移动应用程序结构,从中您可以深入到不同的“屏幕堆栈” 做这件事最好的方法是什么 我是使用不同的表单还是将表单作为基本屏幕,然后只替换面板?我不会使用不同的表单或面板,因为这很可能会将代码变成一个无法维护的大泥球 相反,您可以考虑使用UserControls并动态加载最合适的控件。这个解决方案将与少量控件一起工作,但是当有许多事件、复杂的逻辑和维护状态时,它将失去控制,

我正在编写一个基于C#表单的应用程序,我想知道屏幕层次结构是如何布置的,使用了哪些组件

应用程序流程非常类似于一个带有一个主窗口的移动应用程序结构,从中您可以深入到不同的“屏幕堆栈”

做这件事最好的方法是什么

我是使用不同的表单还是将表单作为基本屏幕,然后只替换面板?

我不会使用不同的表单或面板,因为这很可能会将代码变成一个无法维护的大泥球

相反,您可以考虑使用UserControls并动态加载最合适的控件。这个解决方案将与少量控件一起工作,但是当有许多事件、复杂的逻辑和维护状态时,它将失去控制,我不认为它对小型项目以外的任何项目都有用


2005年,Patterns&Practices小组首次尝试改进动态加载的用户控件。然而,在使用Prisim发布.NET3之后,这一点基本上被放弃了。2010年11月发布了一个更具RIA风格的架构。就我个人而言,我会采用Prisim方法,因为有一个很好的社区,微软的支持,而且项目中已经投入了大量的努力工作,以克服您无疑会遇到的问题。

有许多不同的方法来实现所描述的UIX和工作流,每一个都有自己的优势和劣势,当您接触到各种不同的开发场景时,这些优势和劣势就会变得明显

您可以使用新表单来公开UI控件和功能(这不是我首选的方法),还有一种最适合您的应用程序的方法

我倾向于为每个UI组件创建复合控件,并使用工作流基础处理工作流本身。

对于工作流的管理,Microsoft有一个可扩展且灵活的框架,用于在代码中以分层和编程的方式实现逻辑流程