You can easily retain a reference to a reference to your event handler by capturing it with a local variable.
EventHandler click = (s, e) => { /* Do something; */ };
Then you can attach it like so:
this.button1.Click += click;
Cleaning up can be a little more tricky because it often requires you to make a class-level variable to hold the reference to the handler. This leads to code scattered throughout your class.
However, there's a fairly easy way to handle it. Make a class-level cleanup
action to capture all of you clean-up actions like so:
private Action cleanup = () => { };
Now your code to attach an event handler can be located nicely in a single method like so:
EventHandler click = (s, e) => { /* Do something; */ };
this.button1.Click += click;
cleanup += () => this.button1.Click -= click;
When you are done with your form you can just do the clean-up very quickly like this:
cleanup();
The cool thing is that you can add all sorts of clean-up code to this action variable.