我在空白表单上有一个选项卡控件,但是当我更改选项卡时,有一种方法可以在单击其他选项卡时更改表单。请参阅下文以获得澄清:
E.g。如果我点击“tabPage2”,我将会看到Form2.cs
答案 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一样停靠。