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

Error en FormClosing

Estas en el tema de Error en FormClosing en el foro de .NET en Foros del Web. Hola a todos, el problema que tengo es que cuando ejecuto el método de cerrar el formulario me recorre el if dos veces cuando tendría ...
  #1 (permalink)  
Antiguo 17/08/2010, 05:31
 
Fecha de Ingreso: julio-2010
Mensajes: 93
Antigüedad: 13 años, 9 meses
Puntos: 0
Error en FormClosing

Hola a todos,

el problema que tengo es que cuando ejecuto el método de cerrar el formulario me recorre el if dos veces cuando tendría que hacerlo una vez. Dejo el código que tengo por si alguien me puede decir que es lo que falla:

private void Principal_FormClosing(object sender, FormClosingEventArgs e)
{
//Comprueba si hay registros nuevos para añadir y los añade, sino actualiza
DialogResult dr = MessageBox.Show("¿Quiere guardar los datos y salir?", "Guardar Datos", MessageBoxButtons.OKCancel);

if (dr == DialogResult.OK)
{
if (txt_campaña.Text != "")
{
if (cmb_categoria.Text != "")
{
if (cmb_turnos.Text != "")
{
this.añadir();
Application.Exit();
}
}
}
else
{
this.actualizar();
Application.Exit();
}
}
else if (dr == DialogResult.Cancel)
{
Application.Exit();
}
}
  #2 (permalink)  
Antiguo 17/08/2010, 08:30
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: Error en FormClosing

Porque no haces la comparación de que si no estan vacíos en un solo if?
Trata con algo asi:

Código c#:
Ver original
  1. DialogResult dr = MessageBox.Show("¿Quiere guardar los datos y salir?", "Guardar Datos", MessageBoxButtons.OKCancel);
  2.  
  3.             if (dr == DialogResult.OK)
  4.             {
  5.                 if (txt_campania.Text != "" && cmb_categoria.Text != "" && cmb_turnos.Text != "")
  6.                 {
  7.          
  8.                     this.añadir();
  9.                     Application.Exit();
  10.                 }
  11.          
  12.                 else
  13.                 {
  14.                     this.actualizar();
  15.                     Application.Exit();
  16.                 }
  17.             }
  18.             else if (dr == DialogResult.Cancel)
  19.             {
  20.             Application.Exit();
  21.             }
  22.             }
  #3 (permalink)  
Antiguo 17/08/2010, 10:08
 
Fecha de Ingreso: julio-2010
Mensajes: 93
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Error en FormClosing

El problema es que me salta el DialogResult dos veces antes de cerrar la aplicación y no logro corregirlo.

Código:

private void Principal_FormClosing(object sender, FormClosingEventArgs e)
{
//Antes de cerrar nos pregunta si queremos guardar y en base a eso actualizamos o insertamos
DialogResult dr = MessageBox.Show("¿Quiere guardar los datos antes de salir?", "Guardar Datos", MessageBoxButtons.YesNo);
if (dr == DialogResult.Yes)
{
if (txt_campaña.Text != "" && cmb_categoria.Text != "" && cmb_turnos.Text != "")
{
this.añadir();
}
else
{
this.actualizar();
}
Application.Exit();
}
else if (dr == DialogResult.No)
{
Application.Exit();
}
}
  #4 (permalink)  
Antiguo 17/08/2010, 10:11
Avatar de Bazookao  
Fecha de Ingreso: diciembre-2008
Ubicación: Mexico
Mensajes: 139
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Error en FormClosing

el problema es que tienes esta instruccion

Código vb:
Ver original
  1. Application.Exit();

entonces a la hora de que tu aplicacion te muestre por primera vez el cuadro de dialogo y ejecute esta linea te volvera a preguntar

Solo debes quitarla suerte
  #5 (permalink)  
Antiguo 17/08/2010, 10:28
 
Fecha de Ingreso: julio-2010
Mensajes: 93
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Error en FormClosing

Solucionado, gracias.

Etiquetas: Ninguno
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 17:13.