Embed a form onto a tabcontrol in windows forms

十年热恋 提交于 2019-11-28 12:13:13

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;

}
Rob P.

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.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!