キー入力でボタンクリックイベント発生やメソッド実行ができるようにする

■使用例

//F1キーを押すとbutton1のクリックイベント発生
//(※フォームが子コントロールのキーイベントを受け取れるように、
//あらかじめKeyPreviewをtrueにしておくこと)
ControlHelper.SetButtonClickShortcut(this, Keys.F1, button1);

//textBox1でEnterキー入力でTestメソッド実行
ControlHelper.SetMethodInvokeShortcut(textBox1, Keys.Enter, Test);


■コード

/// <summary>
/// キー入力でボタンクリックイベント発生。
/// </summary>
/// <param name="control">キー入力監視</param>
/// <param name="keys">入力キー</param>
/// <param name="button">クリックイベントを発生させるボタン</param>
public static void SetButtonClickShortcut(Control control, Keys keys, Button button)
{
  control.KeyDown += (sender, e) =>
  {
    if (e.KeyCode == keys)
    {
      button.PerformClick();
    }
  };
}

/// <summary>
/// キー入力でメソッド実行。
/// </summary>
/// <param name="control">キー入力監視</param>
/// <param name="keys">入力キー</param>
/// <param name="action">実行するメソッド</param>
public static void SetMethodInvokeShortcut(Control control, Keys keys, MethodInvoker action)
{
  control.KeyDown += (sender, e) =>
  {
    if (e.KeyCode == keys)
    {
      action.Invoke();
    }
  };
}