我的应用程序正在扩展,但要求规定始终只能打开一个窗口,想想有一个菜单的 Nodepad,每个菜单项具有不同的功能,但始终只打开一个窗口,而不是Excel 中用户可能会同时打开几个窗口。
因此,就 Windows 窗体而言,我正在考虑将窗体放置在主窗体中。然后我可以根据用户菜单选择加载所需的嵌入式表单。或者我可以将控件添加到主窗体(以及它们的事件动态地取决于用户菜单选择)。我会为此使用演示者类。
这只是我会使用的两个解决方案。你们对于如何做得更好有什么建议/经验吗?
我现在意识到我必须重写应用程序的部分内容,但让我们假设我是从头开始。
最佳答案
不要嵌入表单,这不是表单的用途。而且没有必要。
将模块/部分的 UI 放在 UserControls 上。这使其保持良好和模块化,并且您可以保留选择权:这些 UserControl 可以直接嵌入(一次 1 个)到 MainForm 或 MDI ChildWindows 或 TabPages 中或...
使用基本用户控件(视觉继承)和/或接口(interface)来实现常见功能。
关于c# - 单一窗体 Windows 窗体应用程序的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/815428/