Как обрабатывать событие закрытия формы в vb.net

я использовал приведенный ниже код, но он не показывает msgbox. Что не так с этим кодом ?

Private Sub frmSimple_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed
       Dim result = MsgBox("Are you sure you want to Exit ?", vbYesNo)
       If result = DialogResult.Yes Then
        me.Close()
       End If
End Sub

6 ответов


этот код запускается после закрытия формы, когда она удаляется.
В зависимости от того, как вы показываете форму, она может вообще не удаляться.

вам нужно справиться с FormClosing событие и установить e.Cancel to True Если вы хотите отменить закрыть.


  Private Sub frmProgramma_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    If MessageBox.Show("Are you sur to close this application?", "Close", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
    Else
      e.Cancel = True
    End If
  End Sub

или вот как я использую его каждый раз снова и снова...


использовать FormClosing событие. MSDN


 Dim result = MsgBox("Are you sure you want to Exit ?", vbYesNo)

       If result = vbYes Then
        me.Close()
       End If

Я думаю, что это более чистый и просто!

If MsgBox("Are you sure you want to Exit ?", vbYesNo) = vbNo Then e.Cancel = True

If MessageBox.Show("¿Exit?", "Application, MessageBoxButtons.YesNo, _
                        MessageBoxIcon.Question) = DialogResult.No Then
            e.Cancel = True
        End If