Copiar eventos de un control a otro

10/07/2006 - 12:03 por Mochu | Informe spam
Buenas, a ver si alguien me puede resolver una dudilla que tengp con eventos

La idea es que dado un boton con ciertos eventos definidos otro boton tome
para el los eventos de este, es decir, que si button1.Click += new
eventhandler (metodo), alguna forma de decirle que button2.click use el
mismo metodo que button1.Click.

Muchas Gracias
 

Leer las respuestas

#1 Alberto Poblacion
10/07/2006 - 13:18 | Informe spam
"Mochu" wrote in message
news:%
La idea es que dado un boton con ciertos eventos definidos otro boton tome
para el los eventos de este, es decir, que si button1.Click += new
eventhandler (metodo), alguna forma de decirle que button2.click use el
mismo metodo que button1.Click.



Desgraciadamente button1.Click solo permite asignar valores, pero no
leer lo que tiene asignado.
Como alternativa, se me ocurre que en el button2.Click podrías invocar
el OnClick del button1, con lo cual al hacer el click sobre el botón 2 se
dispararán los mismos eventos que cuando se hace click sobre el botón 1.
Dado que OnClick es un método protegido, para poderlo invocar desde fuera
tendrás que usar reflexión. Por ejemplo, asi:

private void button2_Click(object sender, EventArgs e)
{
MethodInfo metodoOnClick =
button1.GetType().GetMethod("OnClick", BindingFlags.NonPublic |
BindingFlags.Instance);
metodoOnClick.Invoke(button1, new object[] { e });
}

El único inconveniente que le veo a esta forma de operar es que las
rutinas de tratamiento del evento recibirán en el "sender" el button1 en
lugar del button2.

Preguntas similares