right now I am designing a small ERP application (C#.net, Visual Studio 2005). Although it is rather small in ERP terms, it is nevertheless rather complex in absolut terms. The GUI consists of a couple of navigation areas (panels), which should stay constant during the entire usage, and a main content area which varies a lot.
Up to now, I am using a different panel for each type of content area (there are about 30 of those). All of these panels reside in the same form with same position and size, but only the active one is visible. However, this approach has two severe drawbacks:
1) Using these panels in the Visual Studio Designer is a pain in the ass. Since all content panels completely overlap and only the most recent is visible, it is akward to target a specific control on a specific panel. I have to move all but one panels to a far off location, edit one panel, move this panel away and get another one, and so forth.
2) The application loads and virtually draws all panels at startup. Well, actually I don't know if they get drawn as they are invisible, but startup time significantly slows down the more panels I have in the form. This wouldn't be necessary because most use cases touch only a couple of the content panels. I would appreciate an approach that loads and draws the panels at runtime. I know I can do that programmatically, but then I couldn't use the Visual Studio Designer any more, could I?
Does anyone know a Best Practice for designing complex GUIs with many panels in Visual Studio? Is my approach sensible, has any one figured out a better way to do it? Should I give up using the Visual Studio Designer for the content panels and build the GUI by pure code?
All comments or ideas are most welcome.
Thanks in advance,