Hi John,
>Already on it's way --- bear in mind that this is proof of concept. Also, I forget to say in the email, you set the controlsource at design time as you would any other bound control. The control itself swaps out the CS and maintains the value and the updating of the controlsource source value.
To make it complete, you'll need an assign and access method:
controlsource_access
return this.OtherCS
controlsource_assign
LPARAM Value
this.OtherCS=Value
If the CS property is changed at runtime or called (my filed level security checks with the controls controlsource) the changes should work (of course the assign needs a little more).