SoloCodigo
CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: pablob en Jueves 5 de Julio de 2007, 23:20
-
Hola a todos.
Estoy haciendo mis primeras armas en C#, bajo WindowsForm, y me encontré con el siguiente inconveniente: estoy haciendo las validaciones a los campos a través del evento Validate de los textboxes. Una de las cosas que controlo es que los campos no puedan ser dejados en blanco cuando es mandatorio que contengan información.
Ahora, si el usuario decide abandonar el formulario, cerrándolo por medio de un click en la X de la esquina superior derecha, continúa validando y obliga al usuario a informar cualquier cosa en el campo para poder abandonar la aplicación.
Si sale a través del botón cancelar, no tengo problemas, porque el ActiveControl es dicho botón, y puedo evitar la validación, pero cualquier otro mecanismo de salida del formulario, exige la validación previa.
¿Alquier sabría de qué manera puedo solucionar este inconveniente?
Desde ya, muchas gracias,
-
en el evento validate pregunta si la forma s esta cerrando y de ser asi entonces no validas nada.
-
no tiene algo que ver con la propiedad Causesvalidation?
se supone que esa es 'la bandera' que indica si entra o no al evento validate <_<
no he usado C# en una aplicacion Windows, pero en Web pasaba cosas por el estilo constantemente con los validadores de campos.... :rolleyes:
http://www.microsoft.com/spanish/msdn/arti...rms03162004.asp (http://www.microsoft.com/spanish/msdn/articulos/archivo/020604/voices/winforms03162004.asp)
Saludos
-
También se puede usar CausesValidation, supongo.
habría que revisar la precedencia de los eventos, de tal forma que si primero se genera el evento Validate que el evento Closed... bueno en fin habría que revisar pero me parece posible hacerlo también de esa manera.
De la amnera que lo he hecho, según recuerdo, es verificando en el evento Validate que la forma no se este cerrando con ayuda de la propiedad Form.Closing
http://msdn2.microsoft.com/en-us/library/s...ing(VS.71).aspx (http://msdn2.microsoft.com/en-us/library/system.windows.forms.form.closing(VS.71).aspx)
-
Estimados:
Ante todo, mil gracias por tomarse la molestia de responder!!!
Les cuento que aún no logro encontrar la propiedad Form.Closing. Supongo que debo estar haciendo algo mal, pero en la lista de atributos disponibles no aparece, la tipeo a mano, y me arroja un error, porque no existe una definición de Closing para Form.
Respecto de Causes Validation, el problema es que hasta tanto salgo del Validating, no puedo cambiar esta propiedad.
Me parece que el problema surge de la secuencia: una vez ingresado el foco en el campo a validar, nada puede hacerse hasta que salga del mismo, con un e.cancel=false!!
Estoy leyendo el material cuyo link me han enviado, a ver si encuentro información ahí que me pueda ayudar.
Muchísimas gracias nuevamente!!
Pablo
-
miercoles!
tienes razon, he revisado y esa propiedad era creada por mi y llenada por mi mismo en los eventos correspondientes.... peudes hacer lo mismo o sino tratar con Disposing
-
Form.Closing no existe...
Existe Form.Close();
O Application.Exit();