С этим кодом все в порядке.Во-первых, учитывая, что есть только два варианта, использовать ElseIf
бессмысленно, хотя и не строго неверно.Если это не Yes
, тогда это должно быть No
, поэтому вам понадобится только Else
:
If (result = DialogResult.Yes) Then
Me.Save(Me.Text)
Me.Close()
Else
Me.Close()
End If
Далее, даже Else
бессмысленно, потому что вы звоните Close
независимо от результата.Все, что вам нужно сделать, это проверить Yes
, сделать что-то определенное для Yes
и затем позвонить Close
независимо от:
If (result = DialogResult.Yes) Then
Me.Save(Me.Text)
End If
Me.Close()
Наконец, вам вообще не следует звонить Close
.Вы находитесь в обработчике событий FormClosing
, поэтому форма уже закрывается.Вам нужно только что-то сделать, если вы хотите, чтобы форма НЕ закрывалась.Итак, все, что вам нужно, это:
If (result = DialogResult.Yes) Then
Me.Save(Me.Text)
End If
Если вы хотите, чтобы форма НЕ закрывалась, вы должны установить e.Cancel
на True
.