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ò)