2008-12-01 25 views
1

調用tabPage_Enter方法當我切換標籤用下面的代碼關閉在C#

tabControl1.SelectTab("MyNextTab"); 

它要求它從切換的標籤和它被切換到的標籤的tabPage_Enter。我希望它被稱爲它切換到的標籤,但不是它從中切換的標籤。我將如何關閉此功能。我知道它什麼時候發生,所以如果有一個我可以做的調用,將關閉調用該選項卡的輸入方法,我可以實現。

回答

2

是的,我repro如果我使用一個按鈕來更改選定的選項卡。 TabControl在更改SelectedIndex之前將焦點強制到自身上。這似乎已經完成以避免驗證事件的問題。焦點更改會生成第一個Enter事件,對於活動選項卡,選項卡更改將生成第二個Enter事件。

知道了這一點,您可以設置一個helper布爾成員,指示應該忽略第一個Enter事件。請小心檢查當前選項卡是不是您想要選擇的選項卡。在一個完美的世界裏,這種行爲應該不重要。重點確實確實先移到活動標籤。

+0

我以這種方式解決了這個問題。我實際上調用一個函數來切換選項卡,並在那裏設置一個字符串,其中包含切換前的當前選項卡的名稱。 tabPage_Enter方法檢查它是否已經啓動,所以我不運行代碼。謝謝你nobuz你指出我正確的方式。 – Matt 2008-12-02 22:42:28

0

您可以使用它檢查活動選項卡的索引和解決方法嗎?

0

將代碼包裝在檢查中的事件中,以便只在需要時進行處理。

如果您可以編寫代碼將其關閉,那麼您可以編寫代碼來設置阻止事件中代碼運行的狀態。