C# winforms多表单布局

C# winforms多表单布局,c#,winforms,visual-studio-2010,C#,Winforms,Visual Studio 2010,出于好奇,是否有可能有两个应用程序布局而不必有两个项目 类似于桌面/笔记本电脑的一种布局。然后是平板电脑的一种布局 我知道winforms只有一个designer文件,这可能回答了我的问题,但我很好奇,我是否真的需要为平板电脑布局重新创建一个全新的程序,尽管它将具有与桌面相同的功能和所有相同的控件,只是看起来有点不同。我将核心功能放在一个库程序集(DLL)中,并编写两个引用相同核心程序集的UI应用程序。您可以编写自己的自定义布局引擎来处理布局。通过这种方式,您可以将所有面向布局的任务留给您的引擎

出于好奇,是否有可能有两个应用程序布局而不必有两个项目

类似于桌面/笔记本电脑的一种布局。然后是平板电脑的一种布局


我知道winforms只有一个designer文件,这可能回答了我的问题,但我很好奇,我是否真的需要为平板电脑布局重新创建一个全新的程序,尽管它将具有与桌面相同的功能和所有相同的控件,只是看起来有点不同。

我将核心功能放在一个库程序集(DLL)中,并编写两个引用相同核心程序集的UI应用程序。

您可以编写自己的自定义
布局引擎
来处理布局。通过这种方式,您可以将所有面向布局的任务留给您的引擎,并将精力集中在代码上

下面是一篇关于微软如何做到这一点的文章(示例来源):

从文章中:

所有Windows窗体控件都提供一个布局事件以及一个主机 允许编写复杂布局的其他通知 代码。为了便于编写可重用的布局引擎,我们可以提供 基本框架


考虑到在这种情况下,只有一些UI是不同的,有些是相同的,我还建议创建一些用户控件,放在库中,而不是复制相关部分。@Servy同意。或者可能是一个公共UI库,在库分离方面没有像我所倾向的那样过分:-)这实际上是我们现在使用的方法,绝大多数控件都是独立的,并且根据需要引用。这就是我们要走的路。这是一些非常好的信息,对于我的新项目,我一定会用到。对于我现有的项目tho来说,这是一个相当大的解决方案,花那么多时间重新设计布局是不划算的。但是,我会为我们包括的新项目做这件事。谢谢你提供的信息!