选项卡控件 - 更改为不同的表单(C#)

时间:2011-12-23 20:53:31

标签: c# .net windows

我在空白表单上有一个选项卡控件,但是当我更改选项卡时,有一种方法可以在单击其他选项卡时更改表单。请参阅下文以获得澄清:

Tab Control

E.g。如果我点击“tabPage2”,我将会看到Form2.cs

3 个答案:

答案 0 :(得分: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();
    }
  }
}

答案 1 :(得分:1)

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

顺便说一句,你可以在容器内放置任何形式,例如:

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

答案 2 :(得分:1)

您可能希望查看可停靠的表单控件,例如开源DockPanelSuite。使用此控件,您可以使表单托管多个表单,在选项卡中,或像Visual Studio一样停靠。