Вам необходимо обработать событие FormClosing
. Это событие возникает непосредственно перед закрытием формы, потому что пользователь нажал кнопку "X" встрока заголовка или любым другим способом.
Поскольку событие вызывается до формы закрыто, это дает вам возможность отменить событие закрытия.Вам передан экземпляр класса FormClosingEventArgs
в параметре e
.Установив для свойства e.Cancel
значение True, вы можете отменить ожидающее событие закрытия.
Например:
Private Sub Form_Closing(ByVal sender As Object, ByVal e As FormClosingEventArgs)
If Not isDataSaved Then
' The user has unsaved data, so prompt to save
Dim retVal As DialogResult
retVal = MessageBox.Show("Save Changes?", YesNoCancel)
If retVal = DialogResult.Yes Then
' They chose to save, so save the changes
' ...
ElseIf retVal = DialogResult.Cancel Then
' They chose to cancel, so cancel the form closing
e.Cancel = True
End If
' (Otherwise, we just fall through and let the form continue closing)
End If
End Sub