2014-01-13 41 views
2

我很清新C#。我有疑問,請任何人澄清我。如何隱藏c#中的標籤標題?

首先,當我點擊第一種形式的按鈕時,默認情況下應該打開一個只有一個選項卡的新窗體(基本上這個窗體將有3個選項卡)。

在默認選項卡中,我將有一個comboBox列表中有2個項目。如果我選擇了特定項目,則相應的選項卡應該出現在默認選項卡 旁邊。

我已經做了一切,但我沒有得到如何隱藏除默認的選項卡以外的選項卡,以及如何顯示從組合框中選擇項目時顯示相應的選項卡。請幫幫我。

預先感謝您。

回答

0

TabControl有多個TabPages,每個TabPages都有一個Visible屬性。

(假設你使用的WinForms)

0

TabPage的是不可見的屬性,你必須刪除選項卡,然後再添加它,這裏是一段簡單的代碼:

private void Form1_Load(object sender, EventArgs e) 
     { 

      List<int> myList = new List<int>() {1,2,3,4,5 }; 
      listBox1.DataSource = myList; 


      foreach (var item in tabControl1.TabPages) 
      { 
       MyTabPages.Add(item as TabPage); 
      } 

     } 

     List<TabPage> MyTabPages = new List<TabPage>(); 


     private void listBox1_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      if (MyTabPages.Count == 0) 
      { 
       return; 
      } 

      Int32 Index = listBox1.SelectedIndex; 
      if (Index >= 0 && Index <= MyTabPages.Count - 1) 
      { 
       if(tabControl1.TabPages.IndexOf(MyTabPages[Index]) < 0) 
       { 
        tabControl1.TabPages.Add(MyTabPages[Index]); 
       } 
       else 
       { 
        tabControl1.TabPages.Remove(MyTabPages[Index]); 
       } 
      } 
     } 

我希望這幫助。

+0

你說得對Visible屬性,但是這個代碼不是很好。我會發佈一個反例。 –

0

這些方法可以幫助你:

public void ShowTab(TabControl tabs, TabPage page) 
{ 
    tabs.TabPages.Add(page) 
} 

public void HideTab(TabControl tabs, TabPage page) 
{ 
    tabs.TabPages.Remove(page) 
} 
0

與標籤(tabPage1)與ComboBox控件名爲comboBox1默認選項卡工作的示例:

//Temporarly list to keep created tabs 
List<TabPage> tempPages = new List<TabPage>(); 

private void Form2_Load(object sender, EventArgs e) 
{ 
    comboBox1.Items.Add("tabPage2"); 
    comboBox1.Items.Add("tabPage3"); 
} 

public void RemoveTabs() 
{ 
    //Remove all tabs in tempPages if there are any 
    if (tempPages != null) 
    { 
     foreach (var page in tempPages) 
     { 
      tabControl1.TabPages.Remove(page); 
     } 
     tempPages.Clear(); 
    } 
} 

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (comboBox1.SelectedIndex >= 0) 
    { 
     RemoveTabs(); 
     var newTabName = ((ComboBox)sender).SelectedItem.ToString(); 
     var newtab = new TabPage(newTabName); 
     //Create the new tabPage 
     tabControl1.TabPages.Add(newtab); 
     //Add the newly created tab to the tempPages list 
     tempPages.Add(newtab); 
    } 

} 
+0

是的,它是有用的。現在我怎樣才能將按鈕添加到這些相應的標籤頁? –

+0

因爲你需要通過代碼刪除和添加tabpages,你必須編程添加控制到它我想。但說實話,我認爲你想做的事情,不要在WinForms中這樣做,只會讓事情變得更加困難。尋找另一個基礎設施/設置。 (不過WPF支持使用'Visibility.Collapsed'顯示和隱藏tabpages) – Jim