2010-02-13 23 views
7

Tengo un fragmento de código que quiero ejecutar cuando se cierra la aplicación. Entonces, utilicé el evento FormCLosing. Pero ahora quiero colocar un mensaje de confirmación para salir. Por ejemplo, si el usuario hace clic en el botón Salir (X), aparecerá un mensaje, si hace clic en NO, la aplicación no se cerrará y volverá al estado anterior.VB.NET: Abort FormClosing()

Ahora me parece difícil de lograr usando el evento FormClosing. porque se ejecutará independientemente del botón en el que haga clic el usuario. ¿Algún remedio para eso?

quiero decir, necesito una siquiera como ExitButtonPressed() ..

Respuesta

18

Usted podría intentar algo así como

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 

Para consultar todas

FormClosingEventArgs Class

Y

CancelEventArgs.Cancel Property

El evento se puede cancelar configurando la propiedad Cancelar en verdadero.

+0

Dentro del evento FormClosing. –

+0

Sí, lo siento, ha cambiado X-) –

+0

Gracias. pero teniendo otro problema ahora http://stackoverflow.com/questions/2256909/vb-net-messagebox-with-yesnocancel-no-cancel-triggers-same-event –

0

'Button2 y closebutton de la forma tanto cierra el formulario haciendo la misma' cuestión

Dim button2Yes As Boolean = False Private Sub Button2_Click (remitente como objeto, e como EventArgs) dirige 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