Eventos en C#

19/02/2005 - 12:32 por Jose Antonio Torralba | Informe spam
Hola!

Estoy intentando crear un evento en una de las clases de mi aplicación pero
me da error. Hago lo siguiente:

Declaro un delegado y el evento en mi clase:
public delegate void OnCambioVisor(ListaLocalidades l);

public event OnCambioVisor onCambioVisor;

En uno de los métodos de esa clase disparo el evento:

onCambioVisor(ruta); //ruta es del tipo correcto, es decir,
ListaLocalidades

En el constructor de otra clase pongo lo siguiente:

o.onCambioVisor += new Observer.OnCambioVisor(cambio_visor);

Y por último implemento el método Cambio_visor:

private void cambio_visor(ListaLocalidades l)
{
for (int i=0;i<l.numeroElementos();i++)
listLocalidades.Items.Add(l[i]);
}

La aplicación lanza una excepcion: "Excepción no controlada del tipo
'System.NullReferenceException' en jtrutas.exe

Información adicional: Referencia a objeto no establecida como instancia de
un objeto."

Esta excepción se lanza cuando la ejecución llega al disparo del evento.

Espero que alguien me pueda echar una mano. Gracias.

Un saludo!

Preguntas similare

Leer las respuestas

#1 Alberto
19/02/2005 - 14:39 | Informe spam
Este error suele aparecer cuando lanzas el evento pero nadie lo escucha. El
código creo que lo tienes bien pero asegúrate de que el objeto o (el que
tienes en el constructor) es el que realmente lanza el evento. Es posible
que tengas otro objeto del mismo tipo y que sea éste el que lo lanza.

"Jose Antonio Torralba" <joseatorralba(ESTO NO)@(NI ESTO)gmail.com> escribió
en el mensaje news:
Hola!

Estoy intentando crear un evento en una de las clases de mi aplicación
pero
me da error. Hago lo siguiente:

Declaro un delegado y el evento en mi clase:
public delegate void OnCambioVisor(ListaLocalidades l);

public event OnCambioVisor onCambioVisor;

En uno de los métodos de esa clase disparo el evento:

onCambioVisor(ruta); //ruta es del tipo correcto, es decir,
ListaLocalidades

En el constructor de otra clase pongo lo siguiente:

o.onCambioVisor += new Observer.OnCambioVisor(cambio_visor);

Y por último implemento el método Cambio_visor:

private void cambio_visor(ListaLocalidades l)
{
for (int i=0;i<l.numeroElementos();i++)
listLocalidades.Items.Add(l[i]);
}

La aplicación lanza una excepcion: "Excepción no controlada del tipo
'System.NullReferenceException' en jtrutas.exe

Información adicional: Referencia a objeto no establecida como instancia
de
un objeto."

Esta excepción se lanza cuando la ejecución llega al disparo del evento.

Espero que alguien me pueda echar una mano. Gracias.

Un saludo!


Respuesta Responder a este mensaje
#2 Jose Antonio Torralba
19/02/2005 - 18:22 | Informe spam
Hola!

Tenías razón, nadie escuchaba el evento porque el objeto que debía
escucharlo no se había creado en el momento en el que lanzaba el evento.

Gracias, un saludo!

"Alberto" escribió en el mensaje
news:
Este error suele aparecer cuando lanzas el evento pero nadie lo escucha.


El
código creo que lo tienes bien pero asegúrate de que el objeto o (el que
tienes en el constructor) es el que realmente lanza el evento. Es posible
que tengas otro objeto del mismo tipo y que sea éste el que lo lanza.

"Jose Antonio Torralba" <joseatorralba(ESTO NO)@(NI ESTO)gmail.com>


escribió
en el mensaje news:
> Hola!
>
> Estoy intentando crear un evento en una de las clases de mi aplicación
> pero
> me da error. Hago lo siguiente:
>
> Declaro un delegado y el evento en mi clase:
> public delegate void OnCambioVisor(ListaLocalidades l);
>
> public event OnCambioVisor onCambioVisor;
>
> En uno de los métodos de esa clase disparo el evento:
>
> onCambioVisor(ruta); //ruta es del tipo correcto, es decir,
> ListaLocalidades
>
> En el constructor de otra clase pongo lo siguiente:
>
> o.onCambioVisor += new Observer.OnCambioVisor(cambio_visor);
>
> Y por último implemento el método Cambio_visor:
>
> private void cambio_visor(ListaLocalidades l)
> {
> for (int i=0;i<l.numeroElementos();i++)
> listLocalidades.Items.Add(l[i]);
> }
>
> La aplicación lanza una excepcion: "Excepción no controlada del tipo
> 'System.NullReferenceException' en jtrutas.exe
>
> Información adicional: Referencia a objeto no establecida como instancia
> de
> un objeto."
>
> Esta excepción se lanza cuando la ejecución llega al disparo del evento.
>
> Espero que alguien me pueda echar una mano. Gracias.
>
> Un saludo!
>
>


Respuesta Responder a este mensaje
#3 William Contreras
21/03/2005 - 21:44 | Informe spam
hola!!! fijate que yo quiero hacer algo parecido, pero no se como funciona
el parametro que le mandas al evento, me pueden explicar mejor esto por
favor. Yo lo que quiero es hacer un control y que se le puedan programar
eventos desde el lugar donde lo llamo
"Jose Antonio Torralba" <joseatorralba(ESTO NO)@(NI ESTO)gmail.com> escribió
en el mensaje news:
Hola!

Estoy intentando crear un evento en una de las clases de mi aplicación


pero
me da error. Hago lo siguiente:

Declaro un delegado y el evento en mi clase:
public delegate void OnCambioVisor(ListaLocalidades l);

public event OnCambioVisor onCambioVisor;

En uno de los métodos de esa clase disparo el evento:

onCambioVisor(ruta); //ruta es del tipo correcto, es decir,
ListaLocalidades

En el constructor de otra clase pongo lo siguiente:

o.onCambioVisor += new Observer.OnCambioVisor(cambio_visor);

Y por último implemento el método Cambio_visor:

private void cambio_visor(ListaLocalidades l)
{
for (int i=0;i<l.numeroElementos();i++)
listLocalidades.Items.Add(l[i]);
}

La aplicación lanza una excepcion: "Excepción no controlada del tipo
'System.NullReferenceException' en jtrutas.exe

Información adicional: Referencia a objeto no establecida como instancia


de
un objeto."

Esta excepción se lanza cuando la ejecución llega al disparo del evento.

Espero que alguien me pueda echar una mano. Gracias.

Un saludo!


Respuesta Responder a este mensaje
#4 Jose Antonio Torralba
22/03/2005 - 13:24 | Informe spam
Hola!

Los parámetros que se le pasan a los eventos son del tipo que se indica en
la declaración del delegado del evento, por ejemplo, si declaramos un
delegado y un evento así:

public delegate void nombreDelegado(int parametro_del_evento);
public event nombreDelegado nombreEvento;

Tendremos que lanzar el evento con un parámetro de tipo entero:

int a=3;
nombreEvento(a);

Luego, en la clase que quieras que se suscriba al evento tendrás que hacer
dos cosas:

1º -> Clase.nombreEvento += new Clase.nombreDelegado(funcion);
Colocando esto en un construcctor de una clase, por ejemplo, estarás
preparando a dicha clase para controlar el evento a través del método
llamado 'funcion', que deberás tener creado (este es el segundo paso)

2º-> void funcion(int parametro_del_evento)
Cuando ocurra el evento este método será llamado. Fíjate que el prototipo de
este método es el mismo que declara el delegado, esto tiene que ser así.

Un saludo!


"William Contreras" escribió en el mensaje
news:
hola!!! fijate que yo quiero hacer algo parecido, pero no se como funciona
el parametro que le mandas al evento, me pueden explicar mejor esto por
favor. Yo lo que quiero es hacer un control y que se le puedan programar
eventos desde el lugar donde lo llamo
"Jose Antonio Torralba" <joseatorralba(ESTO NO)@(NI ESTO)gmail.com>


escribió
en el mensaje news:
> Hola!
>
> Estoy intentando crear un evento en una de las clases de mi aplicación
pero
> me da error. Hago lo siguiente:
>
> Declaro un delegado y el evento en mi clase:
> public delegate void OnCambioVisor(ListaLocalidades l);
>
> public event OnCambioVisor onCambioVisor;
>
> En uno de los métodos de esa clase disparo el evento:
>
> onCambioVisor(ruta); //ruta es del tipo correcto, es decir,
> ListaLocalidades
>
> En el constructor de otra clase pongo lo siguiente:
>
> o.onCambioVisor += new Observer.OnCambioVisor(cambio_visor);
>
> Y por último implemento el método Cambio_visor:
>
> private void cambio_visor(ListaLocalidades l)
> {
> for (int i=0;i<l.numeroElementos();i++)
> listLocalidades.Items.Add(l[i]);
> }
>
> La aplicación lanza una excepcion: "Excepción no controlada del tipo
> 'System.NullReferenceException' en jtrutas.exe
>
> Información adicional: Referencia a objeto no establecida como instancia
de
> un objeto."
>
> Esta excepción se lanza cuando la ejecución llega al disparo del evento.
>
> Espero que alguien me pueda echar una mano. Gracias.
>
> Un saludo!
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida