2012-04-26 4 views
0

Есть ли способ установить выбранную вкладку tabControl без запуска события selectedIndexchanged?Установить выбранную вкладку без выбора событияIndexChanged

например. Здесь срабатывает событие при выборе myTabPage2 потому myTabPage1 по умолчанию:

Private Sub setupTabControl 
    If blnHasAccount=true then 
     MyTabControl.selectedTab=myTabPage1 
    else 
     MyTabControl.selectedTab=myTabPage2 
    End if 
End sub 

Private Sub MyTabControl_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyTabControl.SelectedIndexChanged 
    'Do stuff (but only when user has actually changed the tab themselves) 
End Sub 

ответ

1

При установке нового TabPage можно удалить обработчик события

Try 
    RemoveHandler MyTabControl.SelectedIndexChanged, AddressOf Me.MyTabControl_SelectedIndexChanged 
    .. do your works to change page here 
    .. and then reconnect 
Finally 
    AddHandler MyTabControl.SelectedIndexChanged, AddressOf Me.MyTabControl_SelectedIndexChanged 
End Try 

Это важно вложить все в Try Наконец, чтобы восстановить правильно из исключений

+0

Умный. Кажется, хорошо работает. Я в долгу. :-) – Urbycoz

-1

Можно было фальсифицировать и проверять ComboBox.Enabled в качестве флага для использования в событии SelectedIndexChanged при внесении изменений, а затем при возврате установить значение true. Такие события все равно будут срабатывать (если они?), Но по крайней мере вы можете обеспечить статус глобальной переменной «ComboBox».

Смежные вопросы