キーボードのキーが押されたことを検出する (フォームでのKeyDownの検出) - C#

キーボードのキーが押されたことを検出するコードを紹介します。

概要

キーボードのキーの押下を判定するには、KeyDownイベントを利用します。アプリケーションへのキーの押下であればFormのKeyDownイベントを利用します。

プログラム例

UI

下図のUIを準備します。新規作成の状態から何も変えていません。

コード

フォームをクリックして選択します。プロパティウィンドウのイベントの[KeyDown]の欄をダブルクリックします。


以下のコードを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace KeyAccept
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void FormMain_KeyDown(object sender, KeyEventArgs e)
    {
      switch(e.KeyData)
      {
        case Keys.Left:
          this.Text = "左キーが押されました。";
          break;
        case Keys.Right:
          this.Text = "右キーが押されました。";
          break;
      }
    }
  }
}

解説

FormMain_KeyDown メソッドがフォームのKeyDownイベントのイベントハンドラです。

イベントハンドラの引数eのKeyDataプロパティに押されたキーのコードが設定されています。switch文でKeyDataの値を判定し、左カーソルキーが押された場合はフォームのタイトルバーに"左キーが押されました。"を右カーソルキーが押された場合は"右キーが押されました。"を表示します。
switch(e.KeyData)
{
  case Keys.Left:
    this.Text = "左キーが押されました。";
    break;
  case Keys.Right:
    this.Text = "右キーが押されました。";
    break;
}

実行結果

アプリケーションを実行すると下図の画面が表示されます。


キーボードの右カーソルキーを押すと、フォームのタイトルバーにメッセージが表示されます。


キーボードの左カーソルキーを押すと、フォームのタイトルバーのメッセージが変わります。

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2018-01-17
作成日: 2012-02-08
iPentec all rights reserverd.