Ver Mensaje Individual
  #5  
Antiguo 13-07-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita