VisualStudioで置いたボタンをダブルクリックしたりしてイベントを新しく追加するとフォームデザイナのほうに
this.button1.Click += new System.EventHandler(this.button1_Click);
というのが追加されるわけだが、これを削除するには
this.button1.Click -= new System.EventHandler(this.button1_Click);
とやればいいようだ。なんと単純。でも書き方がきもい。
なんでこんなのを調べてたかというと、この辺とかこの辺からグローバルフックを拾ってきて実装したはいいものの、子フォームでイベントハンドラを追加して作業を終えてから閉じてもイベントが削除されず、staticをなくしても参照が残ってるらしくうまくいかなかった。
参考
http://d.hatena.ne.jp/deep_one/20070316/C_S