2014-11-05 105 views

回答

2

我能想到的有兩種解決方案。

  1. 將組合框移出標籤控件。由於所有選項卡都使用相同的組合框,因此它提供了非選項卡特定的功能。設計明智,這是最​​有意義的,因爲您將避免3個組合框之間的冗餘。

  2. 爲每個選項卡創建3個獨立的組合框,併爲每個組合框引用一個相同的集合。一旦用戶選擇一個項目,不要忘記更新所有3個組合框的選定項目。也不要認爲這需要比第一種解決方案更多的代碼更改。

0

將您的組合框放在第一個選項卡上。然後,事件處理程序添加到您的選項卡控件的SelectedIndexChanged事件,並把這個代碼在它:

private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    tabControl1.SelectedTab.Controls.Add(this.comboBox1); 
} 

Add會自動從它以前一直在標籤中刪除。當然,您必須在組合框所在的所有選項卡上提供可用空間。

0

我試過了,使用VB代碼:TabStrip1.SelectedTab.Controls.Add(*controlname*)來切換,但是一旦它離開原來的頁面並進入新的頁面,切換回原來的標籤似乎不起作用。 剛剛發現,使用*controlname*.BringToFront再次將它帶入了頂峯。

相關問題