Ingo Rammer does a good job of explaining why some of the System.Windows.Forms classes are sealed – thus preventing them from being extended by subclassing. The reason is that winforms controls are just wrappers for the underlying Win32 controls, and, in some circumstances, these controls interact directly with eachother using Win32 message passing – without involving their managed wrappers. At best, extending the wrapper will have no effect. At worst, it breaks the control.
Kudos to Ingo for explaining this. I wish I had more time to spend of winforms, but I’m still exploring ASP.NET. Maybe when Chris Sell’s winforms book is published in the Autumn.