Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O evento LostFocus ocorre quando o objeto especificado perde o foco.
Sintaxe
expressão. LostFocus
expressão Uma variável que representa um objeto TextBox .
Comentários
Para executar um procedimento de macro ou evento quando estes eventos ocorrem, defina a propriedade OnLostFocus para o nome da macro ou para [Procedimento de Evento].
Este evento ocorre quando o foco se move em resposta a uma ação do utilizador, como premir a Tecla de Tabulação ou clicar no objeto ou quando utiliza o método SetFocus no Visual Basic ou a ação SelectObject, GoToRecord, GoToControl ou GoToPage numa 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 pela qual o foco passa do controlo para o controlo num formulário quando prime a Tecla de Tabulação, defina a ordem de tabulação ou especifique as teclas de acesso dos controlos.
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 controlo para o qual se moveu no subformulário tinha o foco anteriormente, não ocorre o evento Enter nem o evento GotFocus , mas ocorre o evento Enter para o controlo de subformulário. 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
Utiliza frequentemente o rato ou uma tecla, como a Tecla de Tabulação, para mover o foco para outro controlo. 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 seguintes procedimentos de evento a um formulário denominado Contactos que contém um botão de opção denominado OptionYes e uma etiqueta com o nome 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.