他们每个人的优点和缺点是什么?哪个更好:MDI儿童或无模式对话框?
1
A
回答
3
这取决于。
使用MDI(或标签MDI),如果用户一般会集中在一个文件一次,并且会希望看到尽可能多的。
如果用户希望一次与很多较小的表单进行交互,请使用拥有的非模态表单(例如toolwindows)。
您也可以同时使用,一拉的Visual Studio。
2
这取决于很多因素,最重要的是你想你的用户与应用程序交互(或怎么做,他/她选择这样做)如何。
例如,旧的互联网浏览方式有很多不同的窗口,会混乱的任务栏。现在,新的趋势是标签,每个人都在朝着它迈进。
相反,MS Office正在朝相反的方向发展。您曾经在一个窗口中打开过很多文件,但现在他们在任务栏中混乱了。
标签的优点在于您可以一次看到所有标签,并且可以快速切换到热键。然而,Office在[菜单栏] - [窗口] - [文件名]中隐藏了这些文件。在文件之间改变很多痛苦。
MDI首次发明了两个过时的模式,它们是“马赛克”,其中每一个窗口被配置为具有大约相同的高度/宽度和“级联”。我从未见过喜欢这些模式的单个用户。
新的趋势是有裁剪窗口,像Slaks说,比如在Visual Studio或者你需要查看大量的数据一次最DEVELOPPEMENT environements。这种方法是“马赛克”模式的明确后继,但具有很大的优势,无论何时调整大小或移动单个窗口,所有其他自动重新排列。
0
+1 for @ SLaks的回答。
这可能是重要的,你的用户有一些对话式的窗户,实际上是无模式,如果他们需要使用所显示的数据为另一任务的一部分。
例如,SQL Server Management Studio中的一些对话框实际上是非模态的,即使它们可能有OK和Cancel按钮;数据库属性窗口就是这样一个野兽。
相关问题
- 1. Winforms + MDI儿童
- 2. MFC与模式儿童无模式对话
- 3. GotFocus()和MDI儿童
- 4. 保持专注于没有对话框的儿童形式?
- 5. 无模式对话框tkinter
- 6. 合并工具条MDI儿童 - 家长
- 7. 德尔福MDI儿童表格和MainMenu
- 8. Mdi儿童在.Net中改变
- 9. 防止重复的MDI儿童表格
- 10. 如何显示(Bringtofront)已从另一个Mdi儿童窗体打开的Mdi儿童窗体?
- 11. 德尔福MDI应用程序和MDI儿童的标题栏
- 12. 显示MDI孩子始终位于其他MDI儿童之上
- 13. 在MDI父项中MDI儿童的分布
- 14. PyQt/PySide显示儿童对话与Qt.FramelessWindowHint
- 15. 当可见性改变时,mdi儿童形式绘制缓慢
- 16. C#MDI表单容器包装儿童形式
- 17. 新的MDI儿童调整其他最大化的形式
- 18. 从儿童形式重新加载MDI父母
- 19. 更新家长模型更新儿童
- 20. 更好的UIAlert对话框
- 21. 在Jquery对话框中编辑viewmodel儿童
- 22. 哪个手风琴儿童被选中?
- 23. 如何对儿童
- 24. 如何在无模式对话框中模拟模态对话框UI行为?
- 25. 儿童指令模板没有更新
- 26. Modal与无模式对话框
- 27. ExtJs中的无模式对话框
- 28. 哪个更好? OpenCyc或ConceptNet?
- 29. 哪个更好H2或HSQLDB?
- 30. jqGrid或dataTable,哪个更好?
我们是否正在谈论Windows窗体中的MDI儿童窗体和模态对话框? – 2010-03-16 02:23:50
是的,这就是我的意思。 – deerchao 2010-03-16 02:45:17
相关:[仍然有一个MDI的地方?](http://stackoverflow.com/questions/486020/is-there-still-a-place-for-mdi)[德尔福,MDI与多文档标签接口(http://stackoverflow.com/questions/1463221/delphi-mdi-vs-tabs-for-multi-document-interface) – voyager 2010-05-31 19:09:46