I use some UserControls
which get created and destroyed within my application during runtime (by creating and closing subwindows with these controls inside).
It
Firstly I would say do not use a destructor but Dispose() to clear your resources.
Secondly, in my opinion, if this code is inside an object that is created very often and has a short lifetime, it's better to take care of removing the event handler yourself as this is a link to the holder object, which will prevent the GC from collecting it.
Regards.