删除标签页

发布于 2024-07-27 15:00:18 字数 1283 浏览 16 评论 0原文

我正在使用 C# 2005 创建 Windows 应用程序。 我有一个 MDIForm (frmMainMenu),其中包含一个 Menustrip 和一个

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 使用 Public 修饰符,但

它仍然没有从 ChildForm 中公开。

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

谢谢。

拉利特·库马尔·巴里克

I am using C# 2005 to create a Windows application. I have a MDIForm (frmMainMenu) which contains a Menustrip and a

TabControl. My ChildForm is frmPurchaseEntry. When the user clicks on a particular Menu option a new TabPage is created and

the child form is displayed within the TabPage.

I am using the following code in the MenuClick event of the MDIForm (frmMainMenu) :

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 ;

Everything is OK upto this. But I am unable to remove the TabPage when the ChildForm is closed. The following command only

closes the ChildForm, but the empty TabPage still remains.

this.Close();

I know the syntax to remove a TabPage is

tabControl1.TabPages.Remove(tabControl1.SelectedTab);

But Im unable to access the TabControl of MDIForm from the ChildForm. I tried to use Public modifier for the TabControl, but

still it is not exposed from the ChildForm.

How can I remove AND dispose a particular TabPage (with a particular Tab Text) from the ChildForm???

Thank you.

Lalit Kumar Barik

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷了相思 2024-08-03 15:00:18

之前/之后

tpPurchaseEntry.Show();

添加

PurchaseEntry.Closed += (_s,_e)=>tabControl1.TabPages.Remove(tpPurchaseEntry);

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

delegate( object _s, EventArgs _e) { tabControl1.TabPages.Remove(tpPurchaseEntry); }

Before/after the

tpPurchaseEntry.Show();

add

PurchaseEntry.Closed += (_s,_e)=>tabControl1.TabPages.Remove(tpPurchaseEntry);

If you are using C# 2.0 replace "(_s,_e)=>tabControl1.TabPages.Remove(tpPurchaseEntry)" with

delegate( object _s, EventArgs _e) { tabControl1.TabPages.Remove(tpPurchaseEntry); }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文