我正在使用Windows2005创建一个C#应用程序。我有一个MDIForm (frmMainMenu),其中包含一个菜单条和一个
TabControl。我的ChildForm是frmPurchaseEntry。当用户点击特定菜单选项时,将创建新的TabPage,并且
子窗体将显示在TabPage中。
我在MDIForm (frmMainMenu)的MenuClick事件中使用了以下代码:
frmPurchaseEntry PurchaseEntry = new frmPurchaseEntry();
PurchaseEntry.MdiParent = this;
PurchaseEntry.TabCtrl = tabControl1;
PurchaseEntry.TopLevel = false;
PurchaseEntry.Visible = true;
PurchaseEntry.FormBorderStyle = FormBorderStyle.None;
PurchaseEntry.Dock = DockStyle.Fill;
TabPage tpPurchaseEntry = new TabPage();
tpPurchaseEntry.Parent = tabControl1;
tpPurchaseEntry.Text = PurchaseEntry.Text;
tpPurchaseEntry.Controls.Add(PurchaseEntry);
tpPurchaseEntry.Show();
PurchaseEntry.Select();
tabControl1.SelectedTab = tpPurchaseEntry ;到目前为止,一切都很好。但是当ChildForm关闭时,我无法删除TabPage。仅以下命令
关闭ChildForm,但仍然保留空的TabPage。
this.Close();我知道删除TabPage的语法是
tabControl1.TabPages.Remove(tabControl1.SelectedTab);但是我无法从ChildForm访问MDIForm的TabControl。我尝试使用TabControl的公共修饰符,但是
它仍然不会从ChildForm中公开。
如何从ChildForm中删除和处置特定的TabPage (带有特定的选项卡文本)?
谢谢。
Lalit Kumar Barik
发布于 2009-07-21 11:39:18
之前/之后
tpPurchaseEntry.Show();添加
PurchaseEntry.Closed += (_s,_e)=>tabControl1.TabPages.Remove(tpPurchaseEntry);如果您使用的是C# 2.0,请替换"(_s,_e)=>tabControl1.TabPages.Remove(tpPurchaseEntry)“with
delegate( object _s, EventArgs _e) { tabControl1.TabPages.Remove(tpPurchaseEntry); }https://stackoverflow.com/questions/1158389
复制相似问题