2015-05-14 185 views
0

我在Winform應用程序中有一個TabControl, 我必須禁用第二個選項卡,點擊它後,只有在我的第一頁上執行一些操作後才能啓用它。 我已禁用選項卡通過代碼在Winform應用程序中從TabControl隱藏TabPage

tabControl1.TabPages[1].Enabled = false; 

實現這個,但我想該選項卡被隱藏或點擊本身應該被禁用的標籤。

+0

添加第二個標籤頁,你已經做了第一個動作後,才頁。正如[本文]中討論的(http://stackoverflow.com/questions/552579/how-to-hide-tabpage-from-tabcontrol)。 – kennyzx

+0

通過爲TAB2 wrinting事件,我能夠禁用第二標籤即 私人無效選擇(對象發件人,TabControlCancelEventArgs E) { 如果(e.TabPage == tabControl1.TabPages [1]) { e.Cancel = true; } 但現在禁用它通過事件後,我應該如何啓用tab2點擊按鈕單擊tab1。 –

+0

可能重複[隱藏和顯示TabControl中的TabPages](http://stackoverflow.com/questions/3365025/hiding-and-showing-tabpages-in-tabcontrol) –

回答

0

嘗試。它會隱藏並顯示TabPages而不會丟失控件。

隱藏的TabPage,並刪除頁眉:

this.tabPage1.Hide(); 
this.tabPage3.Hide(); 
this.tabPage5.Hide(); 
tabControl1.TabPages.Remove(tabPage1); 
tabControl1.TabPages.Remove(tabPage3); 
tabControl1.TabPages.Remove(tabPage5); 

顯示的TabPage和Visible頭:

tabControl1.TabPages.Insert(0,tabPage1); 
tabControl1.TabPages.Insert(2, tabPage3); 
tabControl1.TabPages.Insert(4, tabPage5); 
this.tabPage1.Show(); 
this.tabPage3.Show(); 
this.tabPage5.Show(); 
tabControl1.SelectedTab = tabPage1; 
+0

它正在做任務添加第二個標籤,但如果我點擊標籤頁2,它是在tabcontrol中自動添加更多選項卡,並且在n次單擊時添加了n個選項卡。 –

+0

您需要以編程方式處理此問題。要麼添加一次,要麼選項卡頁面已經存在忽略。我正在使用這個基於用戶。根據用戶權限顯示和隱藏選項卡。謝謝 – ISB

+0

嘿,thanx它的工作:) –

0

你問了兩個問題:

  • 如何隱藏TabPage

  • 如何使之成爲不可選擇

你真的不能隱藏TabPage;最接近的,最簡單的解決方案是從原單Tab控制將其刪除,並把它添加到一個隱藏的助手Tab控制:

tabPage3.Parent = helperTab; 

使其成爲非選擇的,你的代碼的Selecting事件Tab控制。您需要設置一個標誌,也許在頁面Tag,然後你就可以防止一個頁面,該標誌被選中設置:

private void tabControl1_Selecting(object sender, TabControlCancelEventArgs e) 
{ 
    if (e.TabPage.Tag == "X") e.Cancel = true; 
} 
+0

我讓它不可選擇通過選擇事件,但問題是現在在tab1eg上的一些行動後:在按鈕單擊,我想啓用點擊並啓用tab2.Which我做了 tabControl1.TabPages [1]。Enabled = true; 那麼如何通過選擇事件觸發到非可點擊的tab2? –

+0

您將Tag設置爲一個標誌,在這裏「X」使其無法選擇或清除它,使其可以再次選擇:'someTabPage.Tag =「」;' – TaW