Hola a todos.
Trabajando me ha salido un problema que no se de donde viene ni porque
lo hace. Os pongo primero en situacion.
Tengo una aplicacion windows en la que para editar la linea de un
datagridview (un objeto que he cargado de una base de datos) le doy a
un boton y esto me abre un nuevo formulario de edicion con los datos
de ese objeto. Formulario en dialogo (showdialog) para que no se puede
tener mas acceso que a este.
Hasta ahi bien. Dentro del formulario de edicion tengo dos botones,
aceptar y cancelar, cuando le pinchas a cualquiera te pregunta si
estas seguro de lo que vas a hacer con un nuevo dialogo y sus dos
botones "si" y "no". A la hora de "aceptar" sale la ventana y escojas
"si" o escojas "no" todo funciona perfectamente, pero a la hora de
cancelar si le pulso "no" no funciona.
El codigo es asi:
private void buttonCancel_Click(object sender, EventArgs e)
{
DialogResult resultado = MessageBox.Show("¿Desea cancelar?",
DialogButtons.YesNo);
if(resultado == dialogResult.Ok)
{
this.Close();
}
}
Por tanto si en en el messagebox yo no pulso "si", el programa no pasa
por el Close(), con lo que no se tendria q cerrar la ventana de
edicion. Pero cuando termina la comparacion, q al no dar OK pasa de
ella, se me cierra la ventana. He puesto los eventos FormClosing y
FormClosed para verlo paso a paso y por lo menos segun termina ese
fragmento de codigo va a estos eventos.
No se pq y de donde se saca el formulario de edicion q se cierre si no
llega a ejecutarse ese Close() de ahi arriba.
En el boton de aceptar de la ventana de editar trabajo igual y no hace
eso.
private void buttonAceptar_Click(object sender, EventArgs e)
{
DialogResult resultado = MessageBox("¿Desea modificar los datos de
la BD?", MessageButtons.YesNo);
if(resultado == DialogResult.OK)
{
try
{
// Todo el proceso de guardardo de datos
}
catch
{
// Saca por pantalla el error
}
finally
{
this.close();
}
}
}
Esto ultimo que como podeis ver tiene la misma logica que el boton de
cancelar funciona perfectamente.
Si alguien se le ocurre porque puede ser o como mirar a ver...
Gracias a todos
P.D: Decir que me he fijado en los botones y no tengo definido ninguno
como "cancelbutton" de ningun formulario.
Leer las respuestas