views:

1682

answers:

6

My application uses an MDI form, and there are instances where the end user will need multiple child windows open at a time. I need an easy way for the user to switch between windows, which made me think of using tabs kinda like Firefox, or like the tabs in the Visual Studio IDE up at the top where you can switch between open forms and code files.

I'm curious if there is a control in .NET that will already do this? I would rather not re-invent the wheel if I can help it. Google has failed me thus far.

A: 

Standard shortcut for this in Windows is Ctrl+Tab.

Edit:
Have you looked at this article?

Jon Seigel
I know, but most of my users are not that savvy.
Heather
A: 

I know this sounds obvious but have you looked into the tab control. You can configure it so the tabs are at the top.

Tony D
I could make the standard tab control work, I was just curious if there was a control in existence already that knew to look for child windows.
Heather
+3  A: 

Here is a very handy MDI Window Manager control:

http://www.codeplex.com/mdiwinman

HardCode
Thanks! This is exactly what I was looking for!
Heather
+1 Great example, thanks.
Walter
A: 

If you're writing an MDI app, there are standards for switching between windows (Ctrl+Tab/Ctrl+F6 and the Window menu that MDI apps add to the main menu). If you're using tabs, you're breaking the standard for MDI.

Do one or the other. Write an MDI application or a tabbed dialog application. The two are totally different in looks and behavior, and trying to merge both is confusing to the users.

Ken White
We may or may not end up using an MDI form - it just depends on what kind of interface we want to present to our users. A mix of both tabs and default MDI behavior has been considered to appeal to folks who are used to either. I think mixing the two can be done well so long as it doesn't impact the operations of those who are used to using pure MDI.The plan is still to retain the Window menu so those who are used to using it will still have it.
Heather
A: 

You can use the tab control. For each open document, you can associate an instance of a class or user control (to handle the document) with a tab page. Sometimes it is useful to put a frame on the tab page and treat it like you would a form in a single document application.

An alternative to tabs is the "traditional" MDI application. While this isn't considered socially acceptable any more, at least by many people, it's still supported in VB.net. To make an MDI app, create a parent MDI form. This is a normal form with the IsMdiContainer property set to true. A child form is a normal form with the MdiParent property set to the parent MDI form at runtime.

xpda
A: 

Another nice and free control: wincontrol.rapidscada.ru

m_shir