MDI Pros&缺点

时间:2008-12-16 20:40:19

标签: c# .net winforms mdi

我继承了我现在工作的上一个开发人员的应用程序框架。该框架利用多个父/子关系。在许多情况下,父/子/孩子出现。我问他为什么不使用MDI,并且他说多年前,当他开始时,MDI在前面提到的关系情景方面存在重大缺陷。特别是多个父母。

我的实际问题是; MDI还有这些缺点吗? &安培;那些与MDI合作的人,你有什么问题,你是如何克服它们的?

谢谢!

6 个答案:

答案 0 :(得分:1)

我真的认为这是你继承的应用程序的一个缺点,它需要多个父母(你好紧密耦合的应用程序!)。

我曾经在一个应用程序上工作(敲木头,我不会很快回到支持它),这可能与你现在的很像。如果原作者只是使用代理而不是“this.Parent.Parent.Parent.functionX”,我们可能已经能够在修复该应用程序的缺点方面取得更大的进展(并且代理人可能还没有去过......)

至于MDI,我个人更喜欢它,但我不能代表原始开发人员发现的缺点,因为我试图设计他/她所需要的关系。

答案 1 :(得分:1)

当然,所有MDI都是将一个应用程序的所有窗口都放在一个明确标识的屏幕区域中的方法。现在,如果您的应用程序是一个应用程序,它有多个文档,人们使用它,并希望在不使用时“放”它,那么MDI可能适合您。如果不是,那就不是。

答案 2 :(得分:1)

MDI接口的一个问题是您无法在MDI容器中注册无限制的窗口(请参阅This Microsoft KB item)。我认为这是因为我看到很多MDI应用程序在大量使用时遇到了这个错误。

我通常喜欢SDI接口,并使它在多个“某事”实例上共享相同的控件和窗口,而不是为每个“某事”实例生成一个新窗口。

我不知道程序界面的具体细节,但我还没有找到一些无法重写SDI界面和一些模态对话框(如果真的需要)的东西。

答案 3 :(得分:0)

我确实在MDI中看到了一些故障,但说实话,如果你想要复杂的话,我可能会建议你看看WPF而不是winforms。

答案 4 :(得分:0)

听起来我需要进一步研究MDI。我对WPF的评论感到好奇,因为这与我迄今为止所教的内容相反。

此外,一个兴趣点,框架开发人员称他的架构HDI(主机文档接口)。

谢谢!

答案 5 :(得分:0)

当您打开无模式子屏幕且父屏幕已最大化时,您只能以最大尺寸打开子屏幕,而不能以正常大小的屏幕打开它。