2011-12-23 48 views
2

我在空白表单上有一个选项卡控件,但是当我更改选项卡时,有一种方法可以在单击不同选项卡时更改表单。请参见下面的澄清:选项卡控件 - 更改为不同的表单(C#)

Tab Control

例如如果我点击“tabPage2”,我会用Form2.cs提供。

回答

4

是的。只需使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(); 
    } 
    } 
} 
+0

谢谢LarsTech – Mike 2011-12-23 22:10:11

1

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

顺便说一句,你可以将任何形式的容器内为前:

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

您的示例将抛出一个参数异常,因为默认情况下新窗体的TopLevel = true。 – LarsTech 2011-12-23 21:11:09

+0

同意..谢谢! – Elastep 2011-12-23 21:15:53

1

你可能想寻找到一个可停靠窗体控件像开源DockPanelSuite。通过这个控件,你可以在一个表单中拥有多个表单,或者像Visual Studio一样停靠。

相关问题