选项卡控制 – 更改为不同的forms(C#)

我有一个空白表单上的选项卡控件,虽然当我更改选项卡时有一种方法来更改表单时单击不同的选项卡上。 请参阅下面的说明:

选项卡控件

例如,如果我点击“tabPage2”,我会与Form2.cs呈现

是。 只需使Form2无边框,并将TopLevel更改为False,然后您可以将其添加到TabPage2.Controls集合像一个正常的形式。 也许可以添加DockStyle来填充表单。

简单演示:

private void tabControl1_Selecting(object sender, TabControlCancelEventArgs e) { if (e.TabPage.Name == tabPage2.Name) { if (tabPage2.Controls.Count == 0) { Form f = new Form(); f.TopLevel = false; f.FormBorderStyle = FormBorderStyle.None; f.BackColor = Color.Red; f.Dock = DockStyle.Fill; tabPage2.Controls.Add(f); f.Show(); } } } 

有点奇怪的问题,在我看来不是最好的设计实践。 至于我,我会建议你创建UserControls并将其放置在任何形式/选项卡/容器。 它会为你提供相同的行为。

顺便说一句,你可以把任何形式的容器内,例如:

 tabPage2.Controls.Add(new Form2()); 

您可能需要查看Dockable表单控件,如开源DockPanelSuite 。 有了这个控件,你可以有一个表单托管多个表单,在标签中,或像Visual Studio停靠。