If I always need to call RemoveHandler after using AddHandler, where is the best place to do this
You do not have to do this.
You usually need to worry about calling RemoveHandler if your source object (the one with the event) is about to outlast your subscriber. If you work in the Form, the form that will be deleted will not allow the source to raise the event anymore, and both objects will be inaccessible and (ultimately) will receive garbage collection, so you will not have problems.
This problem arises more if you subscribe to an event on a durable object from any other object that will "go away" in front of the durable object. This can lead to a memory leak even with the garbage collector. In this case, you want to call RemoveHandler when you finish listening to the event. There is no single indication when this will happen, as it depends on the event in question and your application logic.
source share