// Base Class public class MyButton : System.Windows.Forms.Button { public MyButton() { this.Click += new EventHandler(ClickHandler); } protected virtual void ClickHandler(object sender, EventArgs e) { // Whatever code you need } } // SubClass public class MySubButton : MyButton { public MySubButton() { this.Click += new EventHandler(ClickHandler); } protected override void ClickHandler(object sender, EventArgs e) { // Whatever code you need that for this sub-class // note that the base class, MyButton, ClickHandler will // *not* fire unless you execute // base.ClickHandler(sender, e); } } // And on the form, if you want to add even more functionality MySubButton oButton = new MySubButton(); this.oButton.Click += new EventHandler(oButton_Click); private void oButton_Click(object sender, EventArgs e) { // Whatever additional code you need on the form // Note that this *will* call the MySubButton's // ClickHandler() method first. }Again, I don't think a Click event is a good example, but that's what I showed since it's what you asked about. Perhaps you have a need for this functionality that I haven't thought of.