Lo primero que necesitamos es alguna rutina o bandera que nos indique si se han realizado cambios en nuestra ventana, para este ejemplo será una variable de tipo Boolean que se seteará en True cada vez que se modifique un dato.
Luego escribiremos una rutina en el manejador del evento FormClosing de nuestro Form que mostrará el diálogo y dependiendo de la respuesta del usuario realizará una acción:
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
If Me.HayCambios Then
Dim respuesta As DialogResult = MessageBox.Show("Hay cambios pendientes, desea guardarlos antes de salir?", "Cambios pendientes", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)
Select Case respuesta
Case Windows.Forms.DialogResult.Yes
Me.GuardarArchivoComo()
Case Windows.Forms.DialogResult.No
'Descartar los cambios
Case Windows.Forms.DialogResult.Cancel
e.Cancel = True
End Select
End If
End Sub
No hay comentarios:
Publicar un comentario