开发者

Embed a form onto a tabcontrol in windows forms

I have a tab control in a windows form and I want to be able to click on a tab and in the body area of the tab I want it to display another form as an embedded component. Is this possi开发者_如何学JAVAble? If so, can someone please provide an example or a link to an example of how to accomplish this?


You are probably looking for Tabbed MDI Child Forms


You can embed a Form but it's not the best choice.

Better place the contents on UserControls and add that to the TabPage.


Set your MainForm (Parent) as IsMDIContainer = true;

Create an instance of the ChildForm and call this function:

FormChild frmChild = new FormChild();
AddNewTab(frmChild);

Copy this Function to your code:

private void AddNewTab(Form frm)
{

    TabPage tab = new TabPage(frm.Text);

    frm.TopLevel = false;

    frm.Parent = tab;

    frm.Visible = true;

    tabControl.TabPages.Add(tab);

    frm.Location = new Point((tab.Width - frm.Width) / 2, (tab.Height - frm.Height) / 2);

    tabControl.SelectedTab = tab;

}


I think the other answer has the right idea; Tabbed MDI is probably what you want.

There is an approach where you create a UserControl that has the same content as the form and use that on the TabPage.

TabPage myTabPage = new TabPage(sometext);
myUserControl = new myUserControlType();
myUserControl.Dock = DockStyle.Fill;
myTabPage.Controls.Add(myUserControl);
myTabControl.Add(myTabPage);

http://bytes.com/topic/c-sharp/answers/270457-can-i-add-form-tabpage goes into more detail; but I'd look at the MDI stuff first.


If you do not want to use MDI, you can try to put everything from desired form to user control and add this user control in both form and tab.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜