创建选项卡式MDI接口

时间:2009-07-16 17:35:52

标签: c# tabcontrol mdi tabpage mdichild

我正在使用C#2005来开发Windows应用程序。我打算使用Tab容器来显示子表单。我使用菜单条显示菜单,并设置MainMenu表单的IsMDIContainer = true属性。 MainMenu表单还包含一个Tab Control,我计划在Tab Control中将所有子表单显示为Tap Pages。

到目前为止,我已经能够在用户选择菜单选项时添加标签页。但我不知道如何在标签页中显示子表单。

我在菜单点击事件中使用了以下代码。

frmPurchaseEntry PurchaseEntry = new frmPurchaseEntry;
PurchaseEntry.MdiParent = this;
PurchaseEntry.TabCtrl = tabControl1;

TabPage tpPurchaseEntry = new TabPage();
tpPurchaseEntry.Parent = tabControl1;

tpPurchaseEntry.Text = "Purchase Entry";
tpPurchaseEntry.Show();

PurchaseEntry.TabPag = tpPurchaseEntry;
PurchaseEntry.Show();
tabControl1.SelectedTab = tpPurchaseEntry;

如何在标签页中正确显示子表单?我不想要文件 - >新类型的应用程序,其中菜单点击事件显示相同(空白)表单。我的菜单选项应各自显示一个独特/不同的形式。

谢谢。

Lalit Kumar Barik

1 个答案:

答案 0 :(得分:0)

子表单的Parent属性可以提供帮助。将其设置为tabpage对象,看看会发生什么。

编辑:显然,这会引发ArgumentException。 “顶级控件无法添加到控件中。”您可以将表单的内容放在Panel或其他内容中,然后设置Panel的Parent属性。

我自己使用的另一个选项是使用 TabStrip,它在相关表单上调用Activate()方法。它通过枚举父级的MdiChildren列表来绘制选项卡,记住每个选项的命中率。