Ver Mensaje Individual
  #4 (permalink)  
Antiguo 10/12/2009, 16:03
Avatar de eledgarr
eledgarr
 
Fecha de Ingreso: octubre-2008
Ubicación: La ciudad de la esperanza
Mensajes: 133
Antigüedad: 16 años, 4 meses
Puntos: 3
Respuesta: Cerrar formulario y confirmar cierre al presiona el boton X del form

¿Y si aprietan alt+f4 o algun atajo que tengas y no se guardaron los cambios?

Por mi experiencia te digo que no hay mas debe ser por el evento FormClosing, si no te la vas a pasar poniendo parches por cada excepción que tengas y vas a acabar con cientos de lineas de codigo por cada pantalla, te platico como lo solucione, tengo una bandera que llamare aqui transacción que puede tomar estos valores

0:ninguna
1: alta
2: baja
3:cambio

en el evento FormClosing disparo un proceso que verifica si transaccion es mayor a cero entonces se debe hacer algo antes de cerrar, si es asi entonces realiza la transaccion.

Al abrir la ventana transaccion vale cero, cuando se aprietan los botones de alta, baja o cambio transaccion toma su valor correspondiente, igual si se detecta algun cambio en los controles detecta que hay un cambio.

Espero explicarme perdona por no ponerte codigo, pero asi es la idea, puede ser largo el analisis y diseño pero neto que a la larga vale la pena.



Perdon falto comentar es verdad que e.CloseReason te puede detectar cuando se aprieta Alt+F4 y 7 psobilidades más por las que se cierra tu ventana,es más CloseReason.None te puede atrapar practicamente cualquier excepción, pero te repito por mi caso y mi experiencia recomiendo más lo anterior además que en ese proceso que te menciono tambien aprovecho para mandar a validar los cambios, digo no es la neta y las dos personas que te contestaron tienen mucho más conocimiento y experiencia que yo, pero eso es lo que me paso ami
__________________
Si te sirve lo que te escribo regalame un karma positivo
-----------------------------------------------------------------------
Estoy aqui no por que conozco mucho, estoy para ignorar menos

Última edición por eledgarr; 10/12/2009 a las 16:15 Razón: falto comentar algo