将SDI转换为MDI

本文关键字:MDI 转换 SDI | 更新日期: 2023-09-27 17:57:44

我正在学习winforms C#开发的第一堂课。我使用的是VS Premium 2013。

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

主表单的结构如下:

  1. 菜单栏
  2. 工具跳闸
  3. 拆分面板,在其自己的类中有一个树视图控件,在其自身的类中的一个列表视图控件,以及在其自身类中的富文本框(这些都会显示在主窗体上)
  4. 用作停靠在表单底部的状态栏的用户控件

所有点击事件和业务逻辑的代码都已经写好了。这已经是一个健壮的应用程序。

是否有将这样的SDI转换为MDI的"最佳实践"这里有大量的代码,除非我得到更好的指导,否则我认为我将不得不创建一个新项目,在我可以的范围内转移类,然后重写所有支持的事件处理程序和相关逻辑。

有人可以推荐一种更节省时间的选择吗?

将SDI转换为MDI

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

这样的更改相对来说是无痛的,这也是在开发中使用设计模式的主要原因之一。此外,在这些情况下,项目中的类型耦合越少,它们就越容易移动。例如,如果你有两种类型,每种类型都依赖于另一种类型,那么任何变化都会对这两种类型产生重大影响。然而,如果这些类型是解耦的,其中一种类型的更改可能对另一种类型完全没有影响。