title: Using event handlers vs overriding event-firing methods
body: <p>I am creating a subclass of Button and would like to add custom functionality to some of its events such as OnClick.  Which is the more desirable way to do it?  Do I override OnClick:</p>
  
  <pre><code>protected override void OnClick(EventArgs e)
  {
      base.OnClick(e);
      doStuff();
  }
  </code></pre>
  
  <p>or should I instead link up the OnClick event to an event handler defined in my Button subclass through the designer?</p>
  
  <pre><code>class ButtonSubclass
  {
      public ButtonSubclass() : base()
      {
          InitializeComponent();
      }
  
      private void InitializeComponent()
      {
          this.Click += new System.EventHandler(this.ButtonSubclass_Click);
      }
  }
  </code></pre>
  
  <p><strong>Edit</strong>: I added minor visual changes (that may pass as rudimentary skinning) but most of the changes are in event handlers that I don't want to re-implement (copy-paste) on every form that reuses it.</p>