Evento LEAVE se me dispara como 20 veces

25/11/2005 - 21:01 por Marcelo | Informe spam
Señores por favor su ayuda:

Tengo porgramado en un control el evento LEAVE pero por alguna razon que no
entiendo se me dispara tantas veces hasta que se agota la memoria, lo raro de
esto, es que tengo el mismo control con el mismo evento programado, en la
misma forma pero no ocurre. Me podrian decir que puedo hacer
mpc

Preguntas similare

Leer las respuestas

#1 Marcelo
25/11/2005 - 22:15 | Informe spam
Halle la respuesta, en medio del codigo tenia lanzaba un metodo focus. Esto
lo afectaba. POrque ??????
mpc


"Marcelo" escribió:

Señores por favor su ayuda:

Tengo porgramado en un control el evento LEAVE pero por alguna razon que no
entiendo se me dispara tantas veces hasta que se agota la memoria, lo raro de
esto, es que tengo el mismo control con el mismo evento programado, en la
misma forma pero no ocurre. Me podrian decir que puedo hacer
mpc
Respuesta Responder a este mensaje
#2 Mario Vázquez
28/11/2005 - 15:39 | Informe spam
Lo que te ocurría seguramente es que el código que tenías en la respuesta al
evento Leave, te generaba una entrada recursiva al propio método.
Aparentemente eso no debiera ocurrir con el método Focus(), pero por lo que
dices sí que pasa. Probablemente antes de enfocar un control, se abandona
el foco (leave) del control actual y por tanto... volvías a entrar en el
método de respuesta al evento Leave.

Un modo de evitar la recursividad en las respuestas a eventos es utilizando
variables estáticas.

Private Sub Control_Leave( sender As Object, e As System.EventArgs )

' La inicialización de las variables estáticas sólo se produce una vez en
toda la vida del programa.
static leaving As Boolean = false

if leaving
Exit Sub
End if

' Lo siguiente indica que hemos entrado en el método. Las variables
estáticas mantienen su valor en llamadas sucesivas.
' Si nuestro código provoca que entremos de nuevo en este método, las lineas
anteriores evitarán que se ejecute.
leaving = true

' -
' ... Código de respuesta al evento
' -

' Restauramos el valor de la variable estática antes de finalizar, para
poder entrar de nuevo en el método.
leaving = false

End Sub

Espero que te ayude.

Saludos,
Mario Vázquez


From: "Marcelo"
Newsgroups: microsoft.public.es.dotnet.vb
Sent: Friday, November 25, 2005 10:15 PM
Subject: RE: Evento LEAVE se me dispara como 20 veces


Halle la respuesta, en medio del codigo tenia lanzaba un metodo focus.
Esto
lo afectaba. POrque ??????
mpc


"Marcelo" escribió:

Señores por favor su ayuda:

Tengo porgramado en un control el evento LEAVE pero por alguna razon que
no
entiendo se me dispara tantas veces hasta que se agota la memoria, lo
raro de
esto, es que tengo el mismo control con el mismo evento programado, en la
misma forma pero no ocurre. Me podrian decir que puedo hacer
mpc
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida