从选项卡控件中删除动态选项卡页

Removing dynamic tab pages from tab control

我有一个名为 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["+"]);
}

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

简单的解决方案是删除 SelectedTab

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

why original code doesn't work?

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["+"] 将 return tabPage,而不是 null