David,
If you want to adhere to "good O-O theory", then you'll have to explicitly subclass the class, add all the code you are wanting to use to extend the class to the subclass and then drop an instance of subclass on your form and never add any code to it in the form.
>I try to use protected properties whenever possible because I feel that making the visibility as restricted as possible is good OOP design. I haven't used hidden properties in the past.