All'interno del vostro modulo:
void SubscribeToEvent(OtherClass theInstance)
{
theInstance.SomeEvent += this.MyEventHandler;
}
void MyEventHandler(object sender, EventArgs args)
{
// Do something on the event
}
Basta iscriversi a tale evento sul altra classe nello stesso modo si farebbe a un evento nella tua forma. Le tre cose importanti da ricordare:
1) È necessario assicurarsi che il proprio metodo (gestore di eventi) abbia la dichiarazione appropriata per abbinarsi al tipo di delegato dell'evento sull'altra classe.
2) L'evento sull'altra classe deve essere visibile all'utente (ad esempio: pubblico o interno).
3) Iscriviti su un'istanza valida della classe, non sulla classe stessa.
fonte
2009-05-27 00:07:18
Grazie per l'ottima soluzione. L'ho capito subito dopo aver postato una domanda e la mia soluzione è molto simile alla tua. – sarsnake
http://stackoverflow.com/questions/8335131/winform-events-in-another-class-net2-simplify-delegate per un'implementazione in .NET2 –
@CSgarpAtl Vedo che questo è selezionato come risposta corretta. Purtroppo non riesco a farlo funzionare anche se ho seguito ogni passaggio. Sto cercando di rendere il mio modulo principale consapevole del metodo che è successo nel mio controllo utente. – Disasterkid