Creación de Eventos dinamicamente

13/02/2007 - 16:23 por Antonio Montalvo | Informe spam
Que tal Compañeros, tengo duda en saber si existe la posibilidad de crear
eventos
en forma dinamica en tiempo de ejecución. Y algo mas se que se pueden crear
lo items de los menus de forma dinamica, y es posible asociarles un
controlador de eventos o un evento como el click.
Espero me haya dado a entender. Gracias de antemano por su ayuda.

Saludos!!!!
 

Leer las respuestas

#1 Octavio Hernandez
13/02/2007 - 16:51 | Informe spam
Antonio,

Normalmente *no* se pueden crear eventos dinámicamente, los eventos son
parte
de una clase (como las propiedades y los métodos) y ésta está compilada
cuando
el programa está en ejecución.

Lo que sí se puede es conectar o desconectar dinámicamente delegados
(referencias
a métodos) para que algo ocurra o no al "dispararse" el evento. Por ejemplo,
supongamos que tenemos un botón (lo mismo podría ser un ítem de menú)
llamado Button1, y un método MostrarMensaje así:

private void MostrarMensaje(object sender, EventArgs e)
{
ShowMessage("Hola");
}

Con la sentencia:

Button1.Click += MostrarMensaje;

estarías diciendo q quieres q cuando se pulse el botón (o sea, cuando se
produzca
su evento Click) se llame al método MostrarMensaje().

De la misma forma, con la sentencia:

Button1.Click -= MostrarMensaje;

estarías "desconectando" el método del evento Click del botón; a partir de
ese
momento, la pulsación del botón no desencadenará una llamada a
MostrarMensaje.
Aunque sí una llamada a los otros posibles métodos que puedan seguir
asociados
al evento, porque es posible asociar más de uno (por eso la sintaxis utiliza
los
operador += y -=, que dan la idea de "agregar" y "quitar").

Saludos - Octavio




"Antonio Montalvo" <Antonio escribió en
el mensaje news:
Que tal Compañeros, tengo duda en saber si existe la posibilidad de crear
eventos
en forma dinamica en tiempo de ejecución. Y algo mas se que se pueden
crear
lo items de los menus de forma dinamica, y es posible asociarles un
controlador de eventos o un evento como el click.
Espero me haya dado a entender. Gracias de antemano por su ayuda.

Saludos!!!!

Preguntas similares