Outlook-style GUI question

Kenbuddy

Member
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 havent got it working yet, but thats 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 Im not sure if an MDI child form can be docked to a splitter bar. Then theres the possibility of using a panel object somehow, but Im not sure if I can layer panel objects so that only one is visible at a time, and Im 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 cant 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 (Ill 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 panels 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 panels 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 panels control collection before adding a new test panel, or should I just add all the test panels to the main panels control collection and then just manipulate their visible properties? Ill 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 theyre totally FREE! Thats right, free. They might be a bit hard to get working right and doing everything you want but theyre really slick controls.
 
Its 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. Ill check it out, although I have been using the approach I described back in July and it is working pretty good. Although Im 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