Re: Cmo saber quien tena el Foco???
Publicado: Mar Feb 07, 2006 10:47 pm
Xevi,
> ¿Hay alguna propiedad que de el objeto con el Foco anterior al objeto
> llamado?
La propieda oActiveControl del formulario tiene siempre el control que tenga
el foco. Otra cosa es que durante ciertos eventos relacionados con el cambio
de foco oActiveControl puede tener el control anterior o el actual,
dependiendo de qué evento se trate.
Para lo que quieres hacer, lo mejor sería usar el evento OnChanging del
folder para capturar qué control tenía el foco (en ese momento todavía no ha
cambiado). Después, en el evento OnChange (que ya sí ha cambiado el foco)
vuelves a enviar el foco al control que quieras.
Te adjunto tu ejemplo modificado para que lo veas. He cambiado los browses
por botones para ver más claro donde está el foco en cada momento, y los
msginfo() por logdebug() para que no afecte al cambio de foco. Cuando el
foco está en el primer botón, al cambiar la pestaña devuelve el foco al
mismo botón, pero si el foco está en otro control, lo deja pasar.
--
Un saludo,
José F. Giménez
Attached files pruebas.zip (1.7 KB)Â
> ¿Hay alguna propiedad que de el objeto con el Foco anterior al objeto
> llamado?
La propieda oActiveControl del formulario tiene siempre el control que tenga
el foco. Otra cosa es que durante ciertos eventos relacionados con el cambio
de foco oActiveControl puede tener el control anterior o el actual,
dependiendo de qué evento se trate.
Para lo que quieres hacer, lo mejor sería usar el evento OnChanging del
folder para capturar qué control tenía el foco (en ese momento todavía no ha
cambiado). Después, en el evento OnChange (que ya sí ha cambiado el foco)
vuelves a enviar el foco al control que quieras.
Te adjunto tu ejemplo modificado para que lo veas. He cambiado los browses
por botones para ver más claro donde está el foco en cada momento, y los
msginfo() por logdebug() para que no afecte al cambio de foco. Cuando el
foco está en el primer botón, al cambiar la pestaña devuelve el foco al
mismo botón, pero si el foco está en otro control, lo deja pasar.
--
Un saludo,
José F. Giménez
Attached files pruebas.zip (1.7 KB)Â