Outlook-style GUI question

Kenbuddy

Newcomer
Joined
Jul 10, 2002
Messages
13
Location
Cypress, TX
I want to create an Outlook-style GUI for a database application that I am working on with VB.NET. I have downloaded an Outlook Bar (called the DevPower Button Bar) from Xtras.net. I haven't got it working yet, but that's not my main question. Just as in Outlook, I want to have the Outlook bar on the left, and then one of several possible screens on the right, depending on which item the user clicks on the bar. Each of these possible screens are unique -- some will have a single pane, but others will have two panes separated by a horizontal splitter bar. Also, the Outlook bar and the entire screen on the right should be connected with a splitter bar so the user can adjust the width of the two sections. This would be easy to do if only one screen was used on the right hand side all the time, but how do I implement it so that the right side of the screen can change, but yet still be docked to the vertical splitter bar that is docked to the Outlook bar? I thought about using and MDI approach, with each of the right hand side panes implemented as a child form, but I'm not sure if an MDI child form can be docked to a splitter bar. Then there's the possibility of using a panel object somehow, but I'm not sure if I can layer panel objects so that only one is visible at a time, and I'm not sure how I would dock multiple panel objects (or MDI child forms, for that matter) to a splitter bar. Any ideas would be greatly appreciated.

Thanks,
Kenbuddy
 
I would go for the MDI approach. With using borderless MDI child windows as the forms on the right part of the screen.
 
Thanks ArnoutV. However, I unfortunately just discovered a note in my Sybex Visual Basic.NET book that says "All MDI child forms are sizable, have borders, and have the usual Control-menu, Close, and Minimize/Maximize buttons, regardless of the settings of the equivalent properties." Taking the author for his word, it seems as if the MDI approach will not work because the child forms in my app need to be borderless, and they can't have a title bar with control menu and min/max/close buttons. Bummer!

Any other ideas?
 
I think that although VB imposes these restrictions on you, you can go the API route to set the style of your windows to how you want.
 
Well, I was tinkering with it last night and I think I found a way that will work. I used the non-MDI approach and created a main form. On that form, I put the Outlook bar docked to the left. I then added a splitter bar and put a panel object on the right side (which I will henceforth refer to as the "main panel") and set its dockstyle to 'fill'. So the main panel and the Outlook bar interact just the way I want. Then I created a separate form and put a panel object on (I'll call it the test panel) and set its dockstyle to 'fill' so that it fills the entire form. I put some test controls on this panel. Then back on the main form, under the click event for one of the items in the Outlook bar, I created a variable of type panel and set it to equal the test panel I created on the second form. I then added this test panel to the controls collection of the main panel on the main form. Since the test panel's dockstyle was set to 'fill,' it automatically filled the main panel, and it included all the test controls. I figure I can design all of my right-hand-side screens using this approach on separate forms. The cool thing is that you can have nested panels, so I even put two panels on the test panel and separated them with a horizontal splitter bar. When I added the test panel to the main panel's control collection, it worked perfectly creating a 3-pane interface. I need to experiment more to see how to switch from one panel to another. Should I delete the current test panel from the main panel's control collection before adding a new test panel, or should I just add all the test panels to the main panel's control collection and then just manipulate their visible properties? I'll experiment more tonight and see what works best.

If any of you foresee any problems with this approach, please let me know so I can stave them off early!

Thanks,
Kenbuddy
 
You could also check out these user controls @
http://www.dotnetmagic.com/

They have a really nice multi-panel control (as well as many other nice, Visual Studio .NET-looking controls) and they're totally FREE! That's right, free. They might be a bit hard to get working right and doing everything you want but they're really slick controls.
 
It's not worth digging up threads this old. Chances are the guy that posted it is long gone. You can always send a PM if you feel the need to contact him.
 
Thanks, Mothra. I'll check it out, although I have been using the approach I described back in July and it is working pretty good. Although I'm not exactly long gone, the email notification telling me of your post was helpful! After I checked out your post, I got this uncanny feeling that someone was looking at my Schwartz...
 
Back
Top