ToolStripButton にショートカットキーを実装しようと試行錯誤していた時のことです。ショートカットキーが入力されたら ToolStripButton をクリックした時と同じ動作にしようと思い PerformClick メソッドを呼び出しました。すると ToolStripButton の Click イベントが発生し満足していたところ、思わぬ現象を目撃してしまいました。

 なんと PerformClick メソッドを呼び出すと ToolStripButton を本当にマウスでクリックしたかのように、選択色で一瞬塗りつぶされているのです! PerformClick メソッドを何回も連続で呼び出すとよくわかります。

 PerformClick メソッドの意味を確かめるべく MSDN を見たところ次のように記載してありました。

マウスでクリックされたときに、ToolStripItem をアクティブにします。

 これを素直に読むと PerformClick メソッドはクリックをシミュレートするのではなく、アクティブにするのが目的に見えます。でも実際には Click イベントが発生します。もうなにがなんだかわかんなくなってきました。

 ToolStripItem を継承している ToolStripDropDownButton や ToolStripSplitButton また Button コントロールで PerformClick メソッドを呼び出してもこのようにはなりません。

 PerformClick メソッドの感想を述べよと言われたら、こう答えたいと思います。

 「なんとも言えない動作です。」