2011-09-09 29 views

回答

2

如果您检查事件中的SelectedIndex属性的实际更改,则“过多次”发火不应成为问题。

private int LastSelectedTab = -1; 

void tab_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    TabControl tab = sender as TabControl; 
    if (this.LastSelectedTab != tab.SelectedIndex) 
    { 
     this.LastSelectedTab = tab.SelectedIndex; 
     // Now do your thing... 
    } 
} 
+1

我讨厌这样的解决方案,P – Jarek

+2

如果你想有一个通用的修复子类的TabControl,并实现自己的事件,只有得到由上面的代码在类中调用...'SelectionActuallyChangedByAHuman'? :) –

+0

哈哈:D好主意 – Jarek