Grazie a entrambi, sono riuscito a risolvere il problema con l'uso della delegate
Grazie anche del tuo codice zero85, così in effetti come metodo è molto più versatile
edit: solo una cosa non capisco
Perchè nell'ultimo if il valore viene impostato a NULL?
p.SetValue(oControl,propValue,null);