protected virtual void OnClick (EventArgs e) { EventHandler h = (EventHandler) Events [ClickEvent]; if (h != null) h (this, e); } static readonly object ClickEvent = new object ();