Dentro de su forma:
void SubscribeToEvent(OtherClass theInstance)
{
theInstance.SomeEvent += this.MyEventHandler;
}
void MyEventHandler(object sender, EventArgs args)
{
// Do something on the event
}
Sólo suscribirse al evento por otra clase de la misma manera que lo haría para un evento en su forma. Las tres cosas importantes que debe recordar:
1) Debe asegurarse de que su método (controlador de eventos) tenga la declaración adecuada para que coincida con el tipo de delegado del evento en la otra clase.
2) El evento en la otra clase debe estar visible para usted (es decir, público o interno).
3) Suscríbete en una instancia válida de la clase, no en la propia clase.
Gracias por una gran solución. Lo he descubierto justo después de publicar una pregunta, y mi solución es muy similar a la tuya. – sarsnake
http://stackoverflow.com/questions/8335131/winform-events-in-another-class-net2-simplify-delegate para una implementación en .NET2 –
@CSgarpAtl Veo que esta opción está seleccionada como la respuesta correcta. Desafortunadamente no puedo hacer que funcione aunque he seguido cada paso. Estoy intentando que mi formulario principal conozca el método que ha sucedido en mi Control de usuario. – Disasterkid