我有两个标签,我知道它们的名称(设计和图片),并且我想删除标签控件中的所有其他标签。(我想删除所有标签页,但我知道其名称的标签页除外。)
我搜索了互联网,发现:
string tabToRemove = "tabPageName";
for (int i = 0; i < tabControlMain.TabPages.Count; i++)
{
if (tabControlMain.TabPages[i].Name.Equals(tabToRemove, StringComparison.OrdinalIgnoreCase))
{
tabControlMain.TabPages.RemoveAt(i);
break;
}
}
但这不是我要查找的内容,因为我不知道要删除的选项卡的字符串。我只知道两个的名字。
我在这里假设很多关于您的问题,但我想您想删除所有标签页,除了您知道名字的标签页。
如果是这种情况,则用已知的标签页名称(准确拼写)填充列表。
然后开始向后循环以删除不符合您要求的选项卡。
List<string> pagesToKeep = new List<string>() {"Design", "Picture"};
for (int i = tabControlMain.TabPages.Count - 1; i>=0; i--)
{
string curName = tabControlMain.TabPages[i].Name;
if(!pagesToKeep.Contains(curName))
{
tabControlMain.TabPages.RemoveAt(i);
}
}
这里需要反向循环,因为当您从集合中删除一个项目时,元素的总数会发生变化,并且您不能安全地使用end作为条件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句