28 ago 2008

Como mostrar un dialogo de confirmación antes de cerrar la ventana

Es lo más común, se va a cerrar una ventana, pero se han editado datos y no se han guardado. En ese caso es muy conveniente utilizar un diálogo con los botones Si, No, Cancelar, los cuales utilizaremos para Guardar los cambios, Descartarlos o cancelar el cerrado de la ventana respectivamente.

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


Mostrar un diálogo de confirmación antes de cerrar la ventana

No hay comentarios:

Publicar un comentario