将表单嵌入到窗体中的tabcontrol上

时间:2011-04-26 20:54:18

标签: c# forms tabcontrol windows-forms-designer

我在Windows窗体中有一个选项卡控件,我希望能够单击选项卡并在选项卡的正文区域中,我希望它将另一个窗体显示为嵌入式组件。这可能吗?如果是这样,有人可以提供一个示例或链接到如何完成此操作的示例吗?

5 个答案:

答案 0 :(得分:10)

您可能正在寻找Tabbed MDI Child Forms

答案 1 :(得分:7)

您可以嵌入表单,但这不是最佳选择。

最好将内容放在UserControls上并将其添加到TabPage。

答案 2 :(得分:4)

我认为另一个答案有正确的想法;选项卡式MDI可能就是您想要的。

有一种方法可以创建一个与表单具有相同内容的UserControl,并在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详细介绍;但我先看看MDI的东西。

答案 3 :(得分:4)

将MainForm(Parent)设置为IsMDIContainer = true;

创建ChildForm的实例并调用此函数:

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

将此函数复制到您的代码中:

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 :(得分:2)

如果您不想使用MDI,可以尝试将所需的表单放到用户控件中,并在表单和选项卡中添加此用户控件。