Embed a form onto a tabcontrol in windows forms

自古美人都是妖i 提交于 2019-12-28 22:07:07

问题


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 possible? If so, can someone please provide an example or a link to an example of how to accomplish this?


回答1:


You are probably looking for Tabbed MDI Child Forms




回答2:


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

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




回答3:


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;

}



回答4:


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.




回答5:


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.



来源:https://stackoverflow.com/questions/5796334/embed-a-form-onto-a-tabcontrol-in-windows-forms

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