首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除TabPage

删除TabPage
EN

Stack Overflow用户
提问于 2009-07-21 10:31:35
回答 1查看 1.7K关注 0票数 0

我正在使用Windows2005创建一个C#应用程序。我有一个MDIForm (frmMainMenu),其中包含一个菜单条和一个

TabControl。我的ChildForm是frmPurchaseEntry。当用户点击特定菜单选项时,将创建新的TabPage,并且

子窗体将显示在TabPage中。

我在MDIForm (frmMainMenu)的MenuClick事件中使用了以下代码:

代码语言:javascript
复制
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。

代码语言:javascript
复制
this.Close();

我知道删除TabPage的语法是

代码语言:javascript
复制
tabControl1.TabPages.Remove(tabControl1.SelectedTab);

但是我无法从ChildForm访问MDIForm的TabControl。我尝试使用TabControl的公共修饰符,但是

它仍然不会从ChildForm中公开。

如何从ChildForm中删除和处置特定的TabPage (带有特定的选项卡文本)?

谢谢。

Lalit Kumar Barik

EN

回答 1

Stack Overflow用户

发布于 2009-07-21 11:39:18

之前/之后

代码语言:javascript
复制
tpPurchaseEntry.Show();

添加

代码语言:javascript
复制
PurchaseEntry.Closed += (_s,_e)=>tabControl1.TabPages.Remove(tpPurchaseEntry);

如果您使用的是C# 2.0,请替换"(_s,_e)=>tabControl1.TabPages.Remove(tpPurchaseEntry)“with

代码语言:javascript
复制
delegate( object _s, EventArgs _e) { tabControl1.TabPages.Remove(tpPurchaseEntry); }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1158389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档