[英]C# - WinForms - SDI or MDI Approach?
我正在创建一个 Visual C# WinForms 应用程序,它将包含 4 个 forms:
用户可能希望以不同的方式重新定位每个 forms。 然而,我希望这些 forms 由父表单“管理”,这样当应用程序关闭时,所有其他 forms 都会关闭。 有没有办法保持 MDI 方法,但允许子 forms 使用 C# WinForms 移出父表单? 谢谢!
通常对于这种情况,您会使用“对接”功能。 在 Visual Studio 本身中也是如此。 通过这种方式,用户可以非常轻松地隐藏/显示 forms。
Visual Studio 不附带这样的 package,但是有免费的库。 例如,查看http://sdock.codeplex.com/ 。
你可以做任何你想做的事。
forms之间可以建立父子关系。 或者,如果您愿意,您可以在主窗体关闭时明确关闭另一个 forms。
大多数系统正在远离 MDI(例如 Office),因此即使您有多个 forms,我也可能会使用带有 SDI 样式接口的 go。 MDI 往往没有很好地利用屏幕空间,大多数现代用户不习惯处理它的一些怪癖。
我曾经使用过一些 MDI 应用程序并尝试过类似的东西。
我从经验中学到了一些东西,你应该在决定之前考虑一下。
我注意到 MDI 的一件事是 forms 和控件的绘制速度似乎比常规的 forms 慢一些。 所以当你点击一个链接/按钮并抛出一个新的子窗体时,你可以看到它在屏幕上直观地绘制了新的子窗体,这使你的应用程序看起来很慢。 这已经在大量硬件/操作系统组合和测试应用程序上进行了测试,这些应用程序除了打开一个带有一些控件的表单之外什么都不做。
关于 MDI 的另一件事是您的孩子 windows 将包含在父 window 中,这适用于某些应用程序,但对其他人来说很烦人。
MDI 的另一个怪癖是,如果您有这样的需要,您不能使用 window 透明度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.