VB.NET: Abort FormClosing()
I have a code snippet that I want to run when the app is closing. So, I used FormCLosing
event. But now i wanna place a confirmation message for exiting. Like, if the user clicks the Exit(X
) button, there'll be a prompt, if he clicks NO, then the app will not close and revert to previous state.
Now I find that hard to achieve using FormClosing
event. because it'll get executed no mat开发者_如何转开发ter what button the user clicks.
Any remedy for that?
I mean, I need an even like ExitButtonPressed()
..
You could try something like
Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
If (MessageBox.Show("Close?", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.No) Then
e.Cancel = True
End If
End Sub
Have a look at
FormClosingEventArgs Class
And
CancelEventArgs.Cancel Property
The event can be canceled by setting the Cancel property to true.
'Button2 and closebutton of the form both closes the form asking the same 'question
Dim button2Yes As Boolean = False Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
If MessageBox.Show(" Sure to close? ", "CLOSING CONTROL", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
button2Yes = True
Me.Close()
Else
button2Yes = False
End If
End Sub
Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles Me.FormClosing
If Not button2Yes Then
If Not MessageBox.Show(" Sure to close? ", "CLOSING CONTROL", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
e.Cancel = True
End If
End If
End Sub
精彩评论