Извлечение SelectionChanged событие элемента управления вкладкой.
РЕДАКТИРОВАТЬ: изменения в вопросе
Вы хотите отменить событие или отменить сохранение?
Для отмены сохранения нужно просто спросить пользователя о чем-то вроде:
Dim msRes as MessageResult = MessageResult.No
If mySwitchedFromTab.IsDirty Then
msRes = msgbox("Save changes to previous tab?", YesNo, "MyApp")
if msRes = MessageResult.Yes Then
SaveMethod()
End If
End If
Теперь, чтобы отменить изменение TAB, вам нужно иметь дело с логическими значениями и контролировать, будет ли срабатывать функция в обработчике событий, или затем возвращать выбранную вкладку на предыдущую вкладку, что-то вроде этого :
If myGlobalTabFireBoolean Then
Dim msRes as MessageResult = MessageResult.No
If mySwitchedFromTab.IsDirty Then
msRes = msgbox("Save changes to previous tab?", YesNoCancel, "MyApp")
Select Case msRes
Case MessageResult.Yes
SaveMethod()
Case MessageResult.Cancel
myGlobalTabFireBoolean = False
myTabContainer.SelectedItem = myPreviousTab
Case Else
' Do Nothing
End If
End If
Else
myglobalTabFireBoolean = True
End IF
Теперь это не единственный способ выполнить этот тип функциональности, так как это зависит от личного стиля кодирования, и даже от таких вещей, как создание элементов вкладок (я создаю вкладки в моем tabitem гораздо более подробно, так что я могу переопределите его стандартное поведение и заставьте их работать как вкладки в Firefox и IE с помощью кнопки «X» и средней кнопки мыши, чтобы закрыть).