<p>To create a new event handler on a control you can do this</p>

<pre><code>c.Click += new EventHandler(mainFormButton_Click);
</code></pre>

<p>or this</p>

<pre><code>c.Click += mainFormButton_Click;
</code></pre>

<p>and to remove an event handler you can do this</p>

<pre><code>c.Click -= mainFormButton_Click;
</code></pre>

<p>But how do you remove all event handlers from an event?</p>

From
Removing All Event Handlers
:
Directly no, in large part because you
  cannot simply set the event to null.
Indirectly, you could make the actual
  event private and create a property
  around it that tracks all of the
  delegates being added/subtracted to
  it.
Take the following:
```
```
List<EventHandler> delegates = new List<EventHandler>();

private event EventHandler MyRealEvent;

public event EventHandler MyEvent
{
    add
    {
        MyRealEvent += value;
        delegates.Add(value);
    }

    remove
    {
        MyRealEvent -= value;
        delegates.Remove(value);
    }
}

public void RemoveAllEvents()
{
    foreach(EventHandler eh in delegates)
    {
        MyRealEvent -= eh;
    }
    delegates.Clear();
}
```
```