Validación de resultados de eventos en pérdida de evento de clic de botón en Winforms
-
20-08-2019 - |
Pregunta
Antecedentes: Tengo una forma con & Quot; forma clara & Quot; y un " cancelar " botón. Si tengo datos no válidos dentro de un menú desplegable y hago clic en cualquiera de estos botones, se activa el evento de validación del menú desplegable. He agregado código al evento de validación para tener éxito cuando & Quot; clear & Quot; o " cancelar " son presionados
Problema: Esperaría que lo siguiente que suceda es que se disparen los eventos de clic del botón. En el caso de & Quot; cancelar & Quot; abotone lo hace. Pero el evento para & Quot; clear & Quot; El botón no. No puedo ver ninguna diferencia entre los dos botones / eventos. ¿Qué está pasando y cómo soluciono esto?
Solución
No estoy seguro de lo que le está sucediendo, ni el evento Click debería ejecutarse cuando configura e.Cancel en un controlador de eventos de Validación. Pero hay una mejor manera de hacer esto. Establezca la propiedad CausesValidation de los botones en False.
Otros consejos
Me encontré con otro escenario similar. ¡Al buscar una respuesta, me encontré con esta vieja pregunta que hacía meses! En este caso, los eventos de validación alejaron el foco del campo original, por lo que para el momento en que el evento del botón estaba listo para activarse, no pudo. Terminé resolviéndolo llamando explícitamente al evento de clic de botón desde la validación.