Compartilhar via


Evento Form.LostFocus (Access)

O evento LostFocus ocorre quando o objeto especificado perde o foco.

Sintaxe

expressão. Lostfocus

expressão Uma variável que representa um objeto Form.

Comentários

Para executar uma macro ou procedimento de evento quando esses eventos ocorrerem, defina a propriedade OnLostFocus como o nome da macro ou para [Procedimento de Evento].

Esse evento ocorre quando o foco se move em resposta a uma ação do usuário, como pressionar a tecla Tab ou clicar no objeto ou quando você usa o método SetFocus no Visual Basic ou a ação SelectObject, GoToRecord, GoToControl ou GoToPage em uma macro.

Um controle pode receber o foco somente se suas propriedades Visible e habilitado estão definidas como Sim. Um formulário pode receber o foco somente se não tiver controles ou se todos os controles visíveis estiverem desativados. Se um formulário contiver algum controle visível e ativado, o evento GotFocus para o formulário não ocorre.

Você pode especificar o que acontece quando um formulário ou controle recebe o foco executando uma macro ou um procedimento de evento quando o evento GotFocus ocorre. Por exemplo, ao anexar um procedimento de evento GotFocus a cada controle em um formulário, você pode guiar o usuário através de seu aplicativo exibindo breves instruções ou mensagens em uma caixa de texto. Você também pode fornecer dicas visuais por habilitar, desabilitar ou exibindo controles que dependem do controle com o foco.

Observação

Para personalizar a ordem na qual o foco passa do controle para o controle em um formulário quando você pressiona a tecla Tab, defina a ordem da guia ou especifique as chaves de acesso para os controles.

O evento LostFocus difere do evento Exit, em que o evento LostFocus ocorrerá toda vez que um controle perde o foco. O evento Exit ocorre antes de um controle perde o foco para outro controle no mesmo formulário. O evento LostFocus ocorre após o evento Exit.

Se você mover o foco para um controle em um formulário, e que o controle não tem o foco nesse formulário, o Sair e eventos LostFocus para o controle que tem o foco no formulário ocorrerão antes dos eventos Enter e GotFocus para o controle movido para.

Se você utilizar o mouse para mover o foco de um controle em um formulário principal para um controle em um subformulário nesse formulário, ocorrerão os eventos a seguir:

  • Exit (para o controle no formulário principal)
  • LostFocus (para o controle no formulário principal)
  • Insira (para o controle de subformulário)
  • Exit (para o controle no subformulário que tinha o foco)
  • LostFocus (para o controle no subformulário que tinha o foco)
  • Insira (para o controle no subformulário que o foco foi movido)
  • GotFocus (para o controle no subformulário que o foco foi movido)

Se o controle para o qual você passou no subforma anteriormente tiver o foco, nem o evento Enter nem o evento GotFocus ocorrerão, mas o evento Enter para o controle de subformação ocorrerá. Se você mover o foco de um controle em um subformulário para um controle no formulário principal, o Exit e LostFocus eventos para o controle no subformulário não ocorrerão, somente o evento Exit do controle de subformulário e os eventos Enter e GotFocus para o controle no formulário principal.

Observação

Muitas vezes você usa o mouse ou uma chave, como Tab, para mover o foco para outro controle. Isso faz com que os eventos de mouse ou de teclado ocorram, além dos eventos discutidos neste tópico.

Quando você alterna entre dois formulários abertos, o evento Deactivate ocorre no primeiro formulário e o evento Activate ocorre para o segundo formulário. Se os formulários contiverem não está visível, habilitado para controles, o evento LostFocus ocorre no primeiro formulário antes do evento Deactivate, e o evento GotFocus ocorre para o segundo formulário depois do evento Activate.

Exemplo

O exemplo a seguir exibe uma mensagem em um rótulo quando o foco é movido para um botão de opção. Para experimentar o exemplo, adicione os procedimentos de evento a seguir a um formulário chamado Contatos que contém um botão de opção chamado OptionYes e um rótulo chamado 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

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.