views:

791

answers:

1

I am using C# 2005 to develop an Windows application. I am planning to use a Tab Container to display the child forms. I have used a Menu Strip to display the menu and have set IsMDIContainer = true property of the MainMenu form. The MainMenu form also contains a Tab Control and I plan to display all child forms as Tap Pages in the Tab Control.

Till now I have been able to add Tab Pages when the user chooses a menu option. But I don't know how to display the child form itself within the Tab Page.

I have used the following code in the menu click event.

frmPurchaseEntry PurchaseEntry = new frmPurchaseEntry;
PurchaseEntry.MdiParent = this;
PurchaseEntry.TabCtrl = tabControl1;

TabPage tpPurchaseEntry = new TabPage();
tpPurchaseEntry.Parent = tabControl1;

tpPurchaseEntry.Text = "Purchase Entry";
tpPurchaseEntry.Show();

PurchaseEntry.TabPag = tpPurchaseEntry;
PurchaseEntry.Show();
tabControl1.SelectedTab = tpPurchaseEntry;

How can I display the child form properly in the Tab Page?? I don't want a File -> New type of application, where menu click event displays the same (blank) form. My menu options should each display a unique/distinct form.

Thank You.

Lalit Kumar Barik

A: 

The Parent property of the child form could help. Set that to the tabpage object and see what happens.

Edit: Apparently, this raises an ArgumentException. "Top-level control cannot be added to a control." You could instead put the form's content in a Panel or something, then set that Panel's Parent property.

The other option, which I use myself, is to have a fake TabStrip which calls the Activate() method on the relevant forms. It draws the tabs by enumerating the parent's MdiChildren list, remembering the hitrects for each.

Kawa