单个窗体Windows窗体应用程序的设计模式

时间:2009-05-02 19:19:43

标签: c# winforms design-patterns

我的应用程序正在扩展,但是reqs要求一直只打开一个窗口,想想Nodepad哪里有菜单,每个菜单项都有不同的功能,但只有一个窗口一直打开而不是用户可能一次打开几个窗口的Excel。

因此,就Windows窗体而言,我考虑将表单放在主窗体中。然后我可以根据用户菜单选择加载所需的嵌入表单。或者我可以添加控件到主窗体(以及它们的事件动态取决于用户菜单选项)。我会使用一个演示者类。

这只是我要使用的两个解决方案。你们对如何做得更好有任何提示/经验吗?

我现在意识到我必须重新编写部分应用程序,但让我假装我从头开始。

3 个答案:

答案 0 :(得分:3)

不要嵌入表单,它不是表单的用途。而且没有必要。

将模块/部分的UI放在UserControls上。这使得它保持良好和模块化并保持您的选项开放:这些UserControls可以直接嵌入(在MainForm或MDI ChildWindows或TabPages中一次1个)......

使用Base UserControl(可视继承)和/或接口来实现常用功能。

答案 1 :(得分:0)

听起来你所描述的是Multiple-Document Interface (MDI) Applications。幸运的是,WinForms中对MDI有很大的支持。这是一个快速intro

答案 2 :(得分:0)

如果您的要求是“一个窗口 - 多功能”,我肯定会采用可组合的UI开发方式。 Smart Client Software Factory是一个很好的起点imo。