Credo d'aver risolto...

Si dichiara un delegato da qualche parte.. ( meglio fuori dalla classe, in modo tale che si veda in tutto il progetto o nel namespace)

il delegate lo impostiamo come vogliamo, tipo:

delegate void MioHandler(Stringa messaggio);

poi invece nella classe dichiariamo l'evento del tipo MioHandler

ovvia

public event MioHandler RiceviMessaggio;

Poi per richiamarlo nella classe, basta scrivere

RiceviMessaggio(messaggio);

mentre all'esterno, basterà fare per avere ricezione dell'evento

MioOggetto.RiceviMessaggio += new MioHandler(nomeRoutine);


The End... sembra facile ( a dire la verità devo vedere se funziona... dopo vi dirò)