Foros del Web » Programación para mayores de 30 ;) » .NET »

Confirmación para cerrar una aplicación.

Estas en el tema de Confirmación para cerrar una aplicación. en el foro de .NET en Foros del Web. Hola. Estoy haciendo una pequeña aplicación con c# donde guando cierta información. Ahora bien, tengo un botón que es para cerrar la misma donde compruebo ...
  #1 (permalink)  
Antiguo 09/10/2012, 07:22
 
Fecha de Ingreso: marzo-2009
Ubicación: La Habana
Mensajes: 67
Antigüedad: 15 años, 1 mes
Puntos: 2
Confirmación para cerrar una aplicación.

Hola. Estoy haciendo una pequeña aplicación con c# donde guando cierta información. Ahora bien, tengo un botón que es para cerrar la misma donde compruebo que si se han hecho cambios en la información aparezca el clásico mensaje: "Usted ha hecho cambios desea guardarlos...... Si No Cancelar." El problema es que si no le da clic a ese botón y le da al botón cerrar (X) de la ventana
se cierra pues y no pasa por la confirmación. Usando en evento FormClosing del formulario he logrado sacar el confirm pero no sé cómo detener al formulario para que no cierre si le digo cancelar.
¿Alguna sugerencia? Gracias.
  #2 (permalink)  
Antiguo 09/10/2012, 07:42
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Confirmación para cerrar una aplicación.

Hola fadexy en el evento formClosing de tu form puedes mostrar una ventana interrogativa, obviamente pasaría aqui despues de que tú hayas verificado que se han hecho cambios :
Código C:
Ver original
  1. if (MessageBox.Show("Usted ha hecho cambios, desea guardarlos?", "GRYPHOS", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
  2.                 {
  3.                     //Aqui ya haces tu proceso de guardarlo
  4.                     //Mi_Code_de_Guardado();
  5.                     //Ó simplemente bloqueas el cierre del form y dejas que el usuario haga el proceso manual de guardado
  6.                     e.Cancel = true;
  7.  
  8.                 }
Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #3 (permalink)  
Antiguo 09/10/2012, 09:38
 
Fecha de Ingreso: marzo-2009
Ubicación: La Habana
Mensajes: 67
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Confirmación para cerrar una aplicación.

Eso, eso, como puedo bloquer el cierre del form?
Hasta ahora tengo esto:
Código:
private void Form1_FormClosing(object sender, EventArgs e)
        {
            if (centro.Cambios)
            {                
                DialogResult result = MessageBox.Show("Ha hecho cambios, asegurese de guardarlos. ¿Seguro desea salir?", "Confirmación de salida", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (result == DialogResult.No)
                {
                    //aqui evitar cierre del form
                }
                else
                {
                    MessageBox.Show("Los cambios se perderán.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Close();
                }
            }
            else
            {
                this.Close();
            }
        }
  #4 (permalink)  
Antiguo 09/10/2012, 09:40
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Confirmación para cerrar una aplicación.

en el código que te pasé ahi esta clarito... e.Cancel = true;. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #5 (permalink)  
Antiguo 09/10/2012, 09:47
 
Fecha de Ingreso: marzo-2009
Ubicación: La Habana
Mensajes: 67
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Confirmación para cerrar una aplicación.

Ah, muchas gracias.
No me funcionaba porque tenía (EventArgs e) en vez de (FormClosingEventArgs e) cómo parametros en el método.

Última edición por fadexy; 09/10/2012 a las 09:53 Razón: Aumentar respuesta

Etiquetas: c#, cerrar, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:26.