c# - 单一窗体 Windows 窗体应用程序的设计模式

标签 c# winforms design-patterns

我的应用程序正在扩展,但要求规定始终只能打开一个窗口,想想有一个菜单的 Nodepad,每个菜单项具有不同的功能,但始终只打开一个窗口,而不是Excel 中用户可能会同时打开几个窗口。

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

这只是我会使用的两个解决方案。你们对于如何做得更好有什么建议/经验吗?

我现在意识到我必须重写应用程序的部分内容,但让我们假设我是从头开始。

最佳答案

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

将模块/部分的 UI 放在 UserControls 上。这使其保持良好和模块化,并且您可以保留选择权:这些 UserControl 可以直接嵌入(一次 1 个)到 MainForm 或 MDI ChildWindows 或 TabPages 中或...

使用基本用户控件(视觉继承)和/或接口(interface)来实现常见功能。

关于c# - 单一窗体 Windows 窗体应用程序的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/815428/

相关文章:

c# - 平滑淡入淡出的控制

.net - 如何要求 Windows::Forms::GroupBox 调整大小?

带有默认值的 JavaScript JSON API 解析器?

Lua 和松散的模式

c# 图像到字节数组巨大的大小

c# - 带有 Mutual TLS 和 DelegatingHandler 的 HttpClient 用于记录请求/响应抛出异常

c# - 组合框下拉位置

c# - 预测两个 double 之和

c# - WCF:为 .NET Core/.NET Standard 预生成 xml 序列化代码

c++ - C++ 中的适配器公共(public)函数 - 好吗?坏的?甚至是真实的模式?