【问题标题】:Removing dynamic tab pages from tab control从选项卡控件中删除动态选项卡页
【发布时间】:2015-04-21 07:18:32
【问题描述】:

我有一个名为tc_DashboardTabControl,我想做的是向TabControl 添加动态选项卡并动态删除它们。

这是我用来制作第一个动态标签的。

tabTitle = "+";
TabPage tab = new TabPage(tabTitle);
tc_Dashboard.Controls.Add(tab);

当我尝试使用以下代码删除它时,它会给我一个ArgumentNullException unhandled 错误。

if(tc_Dashboard.SelectedTab.Text == "+")
{
    tc_Dashboard.TabPages.Remove(tc_Dashboard.TabPages["+"]);
}

我尝试在网上搜索解决方案,但没有成功 任何帮助将不胜感激

【问题讨论】:

  • 试试tc_Dashboard.TabPages.Remove(tc_Dashboard.SelectedTab)
  • 原来如此简单...非常感谢!

标签: c# dynamic tabs tabcontrol


【解决方案1】:

简单的解决方案是删除SelectedTab

if(tc_Dashboard.SelectedTab.Text == "+")
     tc_Dashboard.TabPages.Remove(tc_Dashboard.SelectedTab)

为什么原始代码不起作用?

if(tc_Dashboard.SelectedTab.Text == "+")
{
    tc_Dashboard.TabPages.Remove(tc_Dashboard.TabPages["+"]);
}

tc_Dashboard.TabPages["+"] 为空,因为没有Name 等于+ 的页面。这段代码

tabTitle = "+";
TabPage tab = new TabPage(tabTitle);
tc_Dashboard.Controls.Add(tab);

创建新选项卡并设置Text 属性,但Name 为空

如果你为创建的标签设置Name

 TabPage tab = new TabPage(tabTitle) { Name = "+" };

tc_Dashboard.TabPages["+"] 将返回 tabPage,而不是 null

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    相关资源
    最近更新 更多