It's not all that complex Derek, especially if you already have subclassed all of your WinForm controls (which I highly recommend that everyone should do). There will always be some behavior or some property or some look-and-feel that you'd like to change from native .NET controls and using your own subclasses is the way to accomplish this. I wrote a blog post about this: http://geek-goddess-bonnie.blogspot.com/2009/10/why-and-how-to-sub-class-base-classes.html