ToolStripButton にショートカットキーを実装しようと試行錯誤していた時のことです。ショートカットキーが入力されたら ToolStripButton をクリックした時と同じ動作にしようと思い PerformClick メソッドを呼び出しました。すると ToolStripButton の Click イベントが発生し満足していたところ、思わぬ現象を目撃してしまいました。
なんと PerformClick メソッドを呼び出すと ToolStripButton を本当にマウスでクリックしたかのように、選択色で一瞬塗りつぶされているのです! PerformClick メソッドを何回も連続で呼び出すとよくわかります。
PerformClick メソッドの意味を確かめるべく MSDN を見たところ次のように記載してありました。
マウスでクリックされたときに、ToolStripItem をアクティブにします。
これを素直に読むと PerformClick メソッドはクリックをシミュレートするのではなく、アクティブにするのが目的に見えます。でも実際には Click イベントが発生します。もうなにがなんだかわかんなくなってきました。
ToolStripItem を継承している ToolStripDropDownButton や ToolStripSplitButton また Button コントロールで PerformClick メソッドを呼び出してもこのようにはなりません。
PerformClick メソッドの感想を述べよと言われたら、こう答えたいと思います。
「なんとも言えない動作です。」