Compartir a través de


Evento Form.LostFocus (Access)

El evento LostFocus se produce cuando el objeto especificado pierde el enfoque.

Sintaxis

expresión. LostFocus

expresión Variable que representa un objeto Form.

Comentarios

Para ejecutar una macro o un procedimiento de evento cuando se produzcan estos eventos, establezca la propiedad OnLostFocus en el nombre de la macro o en [Procedimiento de evento].

Este evento se produce cuando el foco se mueve en respuesta a una acción del usuario, como presionar la tecla Tab o hacer clic en el objeto, o cuando se usa el método SetFocus en Visual Basic o la acción SelectObject, GoToRecord, GoToControl o GoToPage en una macro.

Un control puede recibir el foco sólo si sus propiedades Visible y Enabled se establecen en Yes. Un formulario puede recibir el foco sólo si no tiene controles o si todos los controles visibles están deshabilitados. Si un formulario contiene algún control visible y habilitado, no se produce el evento GotFocus para el formulario.

Puede especificar lo que sucede cuando un formulario o control recibe el enfoque mediante la ejecución de una macro o un procedimiento de evento cuando se produce el evento GotFocus. Por ejemplo, al asociar un procedimiento de evento GotFocus a cada control de un formulario, puede guiar al usuario por la aplicación mostrando breves instrucciones o mensajes en un cuadro de texto. También puede dar pistas visuales habilitando, deshabilitando o mostrando controles que dependan del control que tenga el enfoque.

Nota:

Para personalizar el orden en el que el foco pasa del control al control de un formulario al presionar la tecla Tab, establezca el orden de tabulación o especifique las teclas de acceso para los controles.

El evento LostFocus se diferencia del evento Exit en que el evento LostFocus se produce cada vez que un control pierda el enfoque. El evento Exit se produce antes de que un control pierda el enfoque a otro control del mismo formulario. El evento LostFocus se produce después del evento Exit.

Si desplaza el enfoque a un control de formulario que no lo tenía previamente, los eventos Exit y LostFocus del control que tenía el enfoque se producen antes que los eventos Enter y GotFocus del control que lo recibe.

Si usa el mouse para desplazar el enfoque de un control de un formulario principal a un control de un subformulario del mismo, se producirán los siguientes eventos:

  • Exit (para el control del formulario principal)
  • LostFocus (para el control del formulario principal)
  • Enter (para el control del subformulario)
  • Exit (para el control del subformulario que tenía el enfoque)
  • LostFocus (para el control del subformulario que tenía el enfoque)
  • Enter (para el control del subformulario al que se mueve el enfoque)
  • GotFocus (para el control del subformulario al que se mueve el enfoque)

Si el control al que se mueve en el subformulario tenía anteriormente el foco, no se produce ni su evento Enter ni su evento GotFocus , pero sí se produce el evento Enter para el control de subformulario. Si desplaza el enfoque de un control de un subformulario a un control del formulario principal, no se producirán los eventos Exit y LostFocus del control del subformulario, solo el evento Exit para el control del subformulario y los eventos Enter y GotFocus para el control del formulario principal.

Nota:

A menudo se usa el mouse o una tecla como Tab para mover el foco a otro control. Esto hace que se produzcan eventos de mouse o de teclado, además de los eventos abordados en este tema.

Cuando se cambia entre dos formularios abiertos, el evento Deactivate se produce para el primer formulario, y se produce el evento Activate para el segundo formulario. Si los formularios no contienen ningún control visible y habilitado, se producirá el evento LostFocus para el primer formulario antes del evento Deactivate y el evento GotFocus para el segundo formulario después del evento Activate.

Ejemplo:

En el ejemplo siguiente se muestra un mensaje en una etiqueta cuando el enfoque llega a un botón de opción. Para probar el ejemplo, agregue los siguientes procedimientos de evento a un formulario denominado Contactos que contenga un botón de opción denominado OptionYes y una etiqueta denominada LabelYes.

Private Sub OptionYes_GotFocus() 
 Me!LabelYes.Caption = "Option button 'Yes' has the focus." 
End Sub 
 
Private Sub OptionYes_LostFocus() 
 Me!LabelYes.Caption = "" ' Clear caption. 
End Sub

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.