Manejo de eventos

17/08/2004 - 09:24 por Julia | Informe spam
Hola a todos
Tengo dudas sobre cómo para usar eventos en VB.net.
Tengo una clase en la que declaro un evento con la
instrucción Event, y lo genero con RaiseEvents.
Este evento es controlado con un método que tiene la
instrucción handles.
A su vez en las clases que lanzan este evento he
declarado objetos con WithEvent.
El problema es que el método que controla el evento,
declarado con handles, no se ejecuta siempre.

Quisiera saber cómo tengo que declarar las clases para
que puedan usar eventos.

Gracias..
 

Leer las respuestas

#1 Leonardo Azpurua
17/08/2004 - 15:59 | Informe spam
"Julia" escribió en el mensaje
news:02a201c4842b$436020d0$
Hola a todos
Tengo dudas sobre cómo para usar eventos en VB.net.
Tengo una clase en la que declaro un evento con la
instrucción Event, y lo genero con RaiseEvents.
Este evento es controlado con un método que tiene la
instrucción handles.
A su vez en las clases que lanzan este evento he
declarado objetos con WithEvent.
El problema es que el método que controla el evento,
declarado con handles, no se ejecuta siempre.

Quisiera saber cómo tengo que declarar las clases para
que puedan usar eventos.

Hola, Julia:

Lo que describes es el mecanismo correcto para definir, generar y procesar
los eventos para un objeto.

Si en tu componente "cliente" de la clase que genera los eventos tienes para
cada instancia un manejador (una funcion declarada con Handles
<Variable>.<Evento>) siempre debería ejecutarse. Si esto no ocurre deberías
revisar la lógica de generación del evento (igual el problema va por ese
lado).

Si lo que quieres es utilizar un mismo manejador para un evento disparado
por varias instancias de una clase, puedes utilizar la instrucción
AddHandler

Private obj1, obj2, obj3 As objetoConEventos
' supongamos que objetoConEventos genera el evento
' EventoDelObjeto(ByRef sender As objetoConEventos)

Private Sub ProcesarEvento(ByVal sender As objetoConEventos)
...
End Sub

...
AddHandler obj1.EventoDelObjeto, AddressOf ProcesarEvento
AddHandler obj2.EventoDelObjeto, AddressOf ProcesarEvento
AddHandler obj3.EventoDelObjeto, AddressOf ProcesarEvento

Salud!

Leonardo

Preguntas similares