Manejo de Eventos

01/09/2009 - 00:18 por Manolo | Informe spam
Hola Grupo,

tengo una DLL de acceso a datos, desde la que quiero generar un Evento
cuando se ha producido un Error, y capturar el evento generado en el
ejecutable.

En VB lo hacia de la siguiente manera:
1.- Declaro el evento en el DLL.
2.- En el Ejecutable, declaro una instancia de la dll con WithEvents, lo que
me permitia manejar los eventos declarados como si fuera un control más.

¿Hay alguna forma de hacer esto en c#?

Si no se puede, ¿me podriais indicar como hacerlo?

Gracias de antemano.

Preguntas similare

Leer las respuestas

#1 alskare
01/09/2009 - 09:56 | Informe spam
Yo también tuve algún que otro problema a la hora de pasarme a C# con el
tema de los eventos. De hecho, me resultó un buen muro entender el tema de
los delegados.

Mira a ver si te sirve un artículo que escribí en el blog comparando los
eventos de VB y de C#:
http://alskare.wordpress.com/2009/0...b-net-y-c/



"Manolo" escribió en el mensaje
news:%
Hola Grupo,

tengo una DLL de acceso a datos, desde la que quiero generar un Evento
cuando se ha producido un Error, y capturar el evento generado en el
ejecutable.

En VB lo hacia de la siguiente manera:
1.- Declaro el evento en el DLL.
2.- En el Ejecutable, declaro una instancia de la dll con WithEvents, lo
que me permitia manejar los eventos declarados como si fuera un control
más.

¿Hay alguna forma de hacer esto en c#?

Si no se puede, ¿me podriais indicar como hacerlo?

Gracias de antemano.
Respuesta Responder a este mensaje
#2 Alberto Poblacion
01/09/2009 - 17:45 | Informe spam
"Manolo" wrote in message
news:%
Hola Grupo,

tengo una DLL de acceso a datos, desde la que quiero generar un Evento
cuando se ha producido un Error, y capturar el evento generado en el
ejecutable.

En VB lo hacia de la siguiente manera:
1.- Declaro el evento en el DLL.
2.- En el Ejecutable, declaro una instancia de la dll con WithEvents, lo
que me permitia manejar los eventos declarados como si fuera un control
más.

¿Hay alguna forma de hacer esto en c#?



En C# se hace algo parecido:

1 - Se declara el evento en la DLL (usando la sintaxis de C#, que requiere
definirlo por medio de un delegado - cosa que también se puede hacer en
VB.Net aunque el VB.Net permite alternativamente usar una sintaxis abreviada
para definirlos al estilo de VB6).

2 - En el ejecutable, se declara una variable del tipo de la clase que
define el evento. En la declaración de la variable no se hace nada en
especial (no hay "WithEvents" ni nada por el estilo).

3 - Después de haber inicializado la variable con una instancia de la clase,
se conecta el evento a la rutina correspondiente con la sintaxis "+=" :

MiClase x = new MiClase();
x.ElEvento += MiRutina;

Esa es la sintaxis abreviada (con inferencia de tipos de delegados) que
salió con C# 2.0 (Visual Studio 2005). Si estás usando una versión más
antigua, hay que usar una sintaxis un poco más larga, metiendo tipo del
delegado que se usó para definir el evento:

MiClase x = new MiClase();
x.ElEvento += new MiDelegado(MiRutina);

Si el contenido de la rutina que trata el evento es "sencillo", puedes
evitarte crear un método separado para el evento, y añadir el código
directamente al conectar el evento (C# 2.0 o posterior):

MiClase x = new MiClase();
x.ElEvento += delegate { /*aqui el código*/ };

Si tienes C# 3.0, también se puede usar una expresión Lambda.
Respuesta Responder a este mensaje
#3 Fernando A. Gómez F.
01/09/2009 - 18:01 | Informe spam
Manolo wrote:
Hola Grupo,

tengo una DLL de acceso a datos, desde la que quiero generar un Evento
cuando se ha producido un Error, y capturar el evento generado en el
ejecutable.

En VB lo hacia de la siguiente manera:
1.- Declaro el evento en el DLL.
2.- En el Ejecutable, declaro una instancia de la dll con WithEvents, lo
que me permitia manejar los eventos declarados como si fuera un control
más.

¿Hay alguna forma de hacer esto en c#?

Si no se puede, ¿me podriais indicar como hacerlo?

Gracias de antemano.



A mí me gustan las expresiones lambda:

Button button = new Button();
button.Click += (sender, args) => { MessageBox.Show("Hola mundo"); };

Saludos.

Fernando Gómez
www.fermasmas.com
Respuesta Responder a este mensaje
#4 Manolo
02/09/2009 - 04:47 | Informe spam
Gracias a todos por sus rapidas respuestas. Me pongo de inmediato con ello.

Gracias de nuevo a todos.



"Manolo" escribió en el mensaje de
noticias:#
Hola Grupo,

tengo una DLL de acceso a datos, desde la que quiero generar un Evento
cuando se ha producido un Error, y capturar el evento generado en el
ejecutable.

En VB lo hacia de la siguiente manera:
1.- Declaro el evento en el DLL.
2.- En el Ejecutable, declaro una instancia de la dll con WithEvents, lo
que me permitia manejar los eventos declarados como si fuera un control
más.

¿Hay alguna forma de hacer esto en c#?

Si no se puede, ¿me podriais indicar como hacerlo?

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