1

I'm currently designing an MDI application (a custom CRM) in .net 4.0 and i'm starting to dislike the whole interface simply because there's no real way to track which windows are open or closed and it'll probably lead to a very confusing interface.

What is the best way to avoid this? - Should i implement a taskbar to track every open mdi child? - Should i use dialogs instead to prevent multi-tasking? - Is there any way to change the size of a minimized window on a mdi container (why are they so small, you can't even read the full form title that way...)

Sorry for so many questions, thanks in advance.

francis
  • 11
  • 1
  • Is it a requirement to use MDI? Personally, I prefer real windows, then you allready have a working taskbar (Windows builtin), and you can arrange them without restrictions (MDI can cause problems with multi monitor configurations otherwise.) If you look at applications today, generally, they aren't MDI (Office, for example, isn't MDI any more.) Browsers are the exception, they are going for MDI instead of away from, but they have tabs instead, and you can only have one child visible at a time, and only maximized. Keep it simple :) – Onkelborg Oct 20 '10 at 09:07

2 Answers2

1

MDI has its uses, but as you've found can easily lead to a cluttered, hard-to-use interface. The current in-vogue way of dealing with this is to add a tab control (as in any web browser, or most text editors/IDEs) to allow switching between open views. This is close to a task bar I guess.

Other options are controls like the Outlook bar (the big view chooser down the left-hand side of Outlook) or possibly just a simple list box with the currently open views.

Alternatively, consider how often you really want multiple windows available and whether most of them are "tool windows". If so, perhaps look at using docking windows for these tool windows, and a Single Document interface for the rest of the app. All depends on what you're actually doing!

Simon Steele
  • 11,558
  • 4
  • 45
  • 67
1

The MDI windowing management already has the built-in to track open windows by way of the menu. The ToolStripMenu has an MdiWindowListItem that you can set to a reference of the menu item that will contain the list of open windows. If the menu is attached to the MDI parent window, child windows automatically populate the menu item.

One of the objectives of MDI is to allow multitasking. If that's not what you want, use a different design.

As far as changing the size of the minimized windows, apparently it's not possible using the standard Windows interface. See more info here: Is it possible to change size of minimized window in MDI C# Winforms. But you could remove the standard Minimize button, add your own, and do what you want with the windows in a Normal state.

Community
  • 1
  • 1
Suncat2000
  • 1,105
  • 1
  • 14
  • 17