C#检查选项卡是否已打开

时间:2015-09-27 18:07:57

标签: c# .net ribbon

我的软件中存在问题。我使用功能区库,并有功能区工具栏和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... ...  
}

解决这个问题的任何解决办法?

1 个答案:

答案 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()是我从中获取我的选项卡内容的类,您可以忽略它。