What's the pros and cons for each of them开发者_StackOverflow中文版?
It depends.
Use MDI (or tabbed MDI) if the user will generally focus on one document at once, and will want to see as much as possible.
Use owned non-modal forms (such as toolwindows) if the user will want to interact with many smaller forms at once.
You can also use both, a la Visual Studio.
It depends on many factor, the most important is how do you want your user to interact with your application (or how does he/she choose to do it).
For example the old internet browsing way was with a lot of different windows that would clutter up the taskbar. Now the new trend is with tabs and everyone is moving toward it.
On the contrary, MS Office is moving on the opposite direction. You used to have a lot of files opened in a single window but now they are cluttering up in the taskbar.
What is great about tabs is that you see them all at once and you can swap between then fast with hotkeys. Office however, was hiding those files in [menu bar]-[windows]-[file name]. Much of a pain to change between files.
MDI was first invented for two obsolete modes, which are "mosaic" where every window is arranged to have about the same height/width and "cascade". I never met a single user which liked those modes.
New trend is to have clipping windows, like Slaks said, such as in Visual Studio or most developpement environements where you need to see a lot of data at once. This method is the clear successor of the "mosaic" mode, but with the big advantage that whenever you resize or move a single window, all the other auto-rearrange.
+1 for @SLaks's answer.
It may be important for your users to have some dialog-style windows that are actually modeless if they will need to use the displayed data as part of another task.
For example, some of the dialogs in SQL Server Management Studio are actually modeless, even though they may have OK and Cancel buttons; the Database Properties window is such a beast.
精彩评论