A while ago, I talked about how to write basic events for changed properties, and about the INotifyPropertyChanged interface. There is a third way to manage events, which is especially useful when your class has many events, but you expect a very low number of them to be actually handled.
As discussed before, every EventHandler stored in your object takes up space, which is a bit of a waste if most of those will be null. But events allow you to implement the add and remove methods yourself, so you can choose where to store the EventHandler delegate.
One way to do that is through the System.ComponentModel.EventHandlerList class. System.ComponentModel.Component exposes an Events property of this type, which is used by all classes inheriting from Component, including all Windows Forms controls.
See my U2U blog for a complete example, featuring a CueBannerTextBox (like the Internet Explorer 7 search box) with a CueBanner property and a CueBannerChanged event.
Some people keep on asking me why I don’t blog. It seems it’s just something one should do in the twenty-first century. Then again, I often enjoy reading other people’s blogs, so maybe I should indeed return the favor. I looked around a bit for a site to host it, and I found WordPress.com. It looks good (technically speaking, I’ll work on the graphics…), and it seems to have the features I want (including the must have 


