如何在vb.net中处理表单关闭事件

Fai*_*oob 6 vb.net winforms

我使用了下面的代码,但没有显示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
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 14

此代码在表单关闭后处理时运行.
根据您显示表单的方式,它可能根本不会被处理掉.

您需要处理FormClosing事件并设置e.CancelTrue是否要取消关闭.


Pro*_*Que 6

  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
Run Code Online (Sandbox Code Playgroud)

或者这就是我每次都一遍又一遍地使用它......