C# 将SDI转换为MDI

C# 将SDI转换为MDI,c#,winforms,mdi,sdi,C#,Winforms,Mdi,Sdi,我正在上winforms C#development的第一堂课。我正在使用VS Premium 2013 我们整个学期都在写申请书。对于我们的最终项目,我们的任务之一是将其从SDI转换为MDI 主窗体的结构如下所示: 梅努斯蒂普 工具条 拆分面板,在它自己的类中有一个treeview控件,在它自己的类中有一个listview控件,在它自己的类中有一个富文本框(这些都显示在mainform上) 用作停靠在窗体底部的状态栏的用户控件 所有单击事件和业务逻辑的代码都已编写。这已经是一个健壮的应用程序

我正在上winforms C#development的第一堂课。我正在使用VS Premium 2013

我们整个学期都在写申请书。对于我们的最终项目,我们的任务之一是将其从SDI转换为MDI

主窗体的结构如下所示:

  • 梅努斯蒂普
  • 工具条
  • 拆分面板,在它自己的类中有一个treeview控件,在它自己的类中有一个listview控件,在它自己的类中有一个富文本框(这些都显示在mainform上)
  • 用作停靠在窗体底部的状态栏的用户控件
  • 所有单击事件和业务逻辑的代码都已编写。这已经是一个健壮的应用程序

    是否有将这样的SDI转换为MDI的“最佳实践”?这里有大量的代码,除非我得到更好的指导,否则我假设我必须创建一个新项目,移动我可以使用的类,然后重写所有支持的事件处理程序和相关逻辑


    有人可以推荐一个更省时的选项吗?

    没有单一的答案,因为迁移的细节取决于当前应用程序的细节。如果你写得很好,那么应该几乎没有任何变化。在显示每个文档表单之前,应该只设置它的MDI父级。仍然有一些细节需要考虑,但这将是大部分。

    因此,这样的更改相对来说比较轻松,这是在开发中使用设计模式的主要原因之一。此外,项目中的类型耦合越少,在这些情况下,它们越容易移动。例如,如果您有两种类型,每种类型都依赖于另一种类型,使其完全保持原样,那么任何更改都将对这两种类型产生重大影响。但是,如果这些类型是解耦的,其中一个类型的更改可能对另一个类型完全没有影响