2015-09-27 102 views
0

我在我的軟件中有litle問題。我正在使用功能區庫,並具有功能區工具欄和tabcontrol。在按鈕上單擊我創建新的選項卡項目。C#檢查標籤是否打開

如何檢查tabitem是否打開?如果打開,只需選擇該選項卡。

當我點擊5倍的按鈕,我得到5個tabitems打開。

private void buttonItem14_Click_1(object sender, EventArgs e) 
{ 
    TabItem orderTab = tabControl1.CreateTab("Orders");  

    // Check if tab is opened  
    // etc... ... 
} 

解決這個問題的任何解決方案?

+0

你可以創建一次,在別的地方,並隱藏/顯示它嗎? – Ian

+0

我可以做所有的操作,但我不想要多個選項卡打開 – Ivan

+0

您使用的是什麼功能區庫?什麼是'tabControl1'的類型? –

回答

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()是我從中獲取我的選項卡的內容的類,您可以忽略它。