我的软件中存在问题。我使用功能区库,并有功能区工具栏和tabcontrol。在按钮上单击我创建新标签项。
如何检查tabitem是否已打开?如果是开放的,只需选择该标签。
当我点击按钮上的5x时,我打开了5个tabitems。
private void buttonItem14_Click_1(object sender, EventArgs e)
{
TabItem orderTab = tabControl1.CreateTab("Orders");
// Check if tab is opened
// etc... ...
}
解决这个问题的任何解决办法?
答案 0 :(得分:1)
只需遍历所有打开的标签,然后比较每个标签总是不同的内容,例如标题。这是我经常使用的代码,它不是最佳的,但它可以完成工作。
if (tabControl.HasItems)
{
foreach (TabItem t in tabControl.Items)
{
if ((string)t.Header == "Hello")
{
t.IsSelected = true;
return;
}
}
}
tabControl.Items.Add(new TabItem()
{
Header = "Hello",
Content = new UserControl(),
IsSelected = true
});
首先我们检查选项卡控件中是否有任何选项卡,如果不是,我们继续创建它。如果我们将每个项目的标题与标签的标题进行比较,我们希望防止再次打开。如果匹配,我们只需切换到选项卡并退出方法,否则在程序流程之后执行创建它的代码。 UserControl()是我从中获取我的选项卡内容的类,您可以忽略它。