Tengo un problema con un código parecido a este (pongo este código por simplificar):
Public Sub tabulador(codigo As Variant)
Select codigo
Case Key.Enter, Key.Return
Desktop.SendKeys("[Tab]")
Default
End Select
End
Public Sub texto_GotFocus()
Last.background = &9FFFFF&
End
Public Sub texto_lostFocus()
Last.background = &FFFFFF&
verifica(Last)
End
Private function verifica (Ctrl As TextBox) as boolean
Message("hola")
end
La idea es un formulario con diferentes TextBox todos ellos formando el grupo "texto".
Al coger y perder el foco cambian de color de fondo (pura estética).
Al perder el foco una función verifica si el tipo de dato es obligatorio y si es conforme (usando tag) y si hay un error lanza un mensaje al usuario informando de los errores.
El problema reside en que cuando pulso "enter" el TextBox actual pierde el foco y lo coge el siguiente TextBox. Entonces se ejecuta el evento LostFocus y cuando se dispara el mensaje de error el TextBox actual (que aún está vacío) pierde el foco y se evalúa otra vez (es como un rebote). ¿Se entiende?
¿Cómo puedo evitar que se ejecute el evento lostFocus al lanzar el mensaje?
Gracias anticipadas
Saludos