And that's fine... but that necessitates the need to instantiate an object, just to get to a single property. And when you get down to someMaskTextBox.Mask = dm .... you've now lost the readability the OP is after. Sometimes simplicity is better. Actually, after thinking about it, I would probably use application settings to hold the masking, then expose a shared property/class to actually return the value, then that way I could swap out different maskings based on user preferences or even locale.

-tg