Cita:
Empezado por Dexter182
y en el está escrito algo que no es válido y se presiona ESC para salir del formulario.
Entonces al reabrir el formulario e intentar obligar a posicionar el Focus en el otro ComboBox me aparece el mensaje de validación del ComboBox_Categoria y además no me posiciona el Focus en el ComboBox_Seccion.
|
Si el usuario presiona ESC es porque está cancelando la operación. Entonces lo lógico sería que en código cancelases también cualquier cosa que él haya puesto y dejar el formulario en su estado inicial. Esto lo harías en el evento OnCloseQuery examinando la propiedad ModalResult del formulario para ver que efectivamente es mrCancel.
¿Qué de dónde sacas lo de mrCancel?
En lugar de usar un evento como KeyPress para captar la tecla, lo más cómodo es que en tu formulario coloques dos botones: Aceptar y Cancelar. Al primero le asignas mrOk a su propiedad ModalResult y al segundo mrCancel. A éste último le pones en
true su propiedad Cancel con lo cual, al oprimir ESC automáticamente se intentará cerrar el formulario (CloseQuery).
Por otra parte hazte esta pregunta:
¿Qué pasa si el usuario decide cancelar la operación pero en lugar de hacerlo con ESC lo hace oprimiendo el botón Cancelar?
El foco del teclado intenta pasar al botón generando el evento OnExit del combo y por tanto el error.
Por este tipo de razones, en mi opinión es muy incómodo para el usuario que las validaciones se hagan campo por campo. Yo mejor dejo todas en el evento OnCloseQuery.
// Saludos