Pérdidas de foco

Hola:
Quizás la cosa sea o fácil o imposible pero no veo como hacerlo. Se trata de saber como puedo hacer que cuando un control pierde el foco, el LostFocus hace que se ejecuten determinadas tareas, siempre excepto si se pierde el foco porque se pulsa un determinado botón, y entonces deben ejecutarse otras. ¿Cómo puedo controlar que el foco se pierde porque he hecho click en ese botón concretamente y entonces se haga algo distinto a si se pierde el foco hacia cualquier otro control?
Gracias.

1 respuesta

Respuesta
1
El problema es que no puedes controlar el LostFocus, es un evento que se ejecuta si o si.
La solución que se me ocurre es colocar el código que tienes en el LostFocus dentro de un control Timer y en el LostFocus pones
Timer1.Interval = 100
Esto hace que pierdas un pequeño e imperceptible tiempo antes de ejecutar ese código, eso te da la posibilidad de colocar una variable que determine que acción tiene que realizar ese código, por ejemplo tendrías la variable "Accion"
En el lostfocus pondrías
Accion = 1
Timer1.Interval = 100
y en el codigo de timer, verificarias esa variabale
If Accion = 1 Then
'codigo 1
Else
'codigo 2
End If
y en el Boton que quieres que te realliza otra accion, pondrias:
Accion = 2
Esto hace que si eso control pierde el foco, como la variable Acción vale 1, ejecutaría el código que vos le ponas, pero si presionas el botón, esta haría que el control pierda el foco, pero ese código se va a ejecutar luego de que desde el botón cambiaras la variabe acción, así el código seria otro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas