KeyEventArgsクラス

プロパティ

名前 説明
bool Control Ctrlキーが押されているならば、true

(keyData & Keys.Control) == Keys.Controlとして判定されている Control - KeyEvent.cs

bool Alt Altキーが押されているならば、true
bool Shift Shiftキーが押されているならば、true
Keys Modifiers Ctrl、Shift、Altキーの組み合わせ
Keys KeyCode キーのコード (キーの情報)

修飾キーの状態を考慮しないときに使用する

Keys KeyData キーのデータ (KeyCodeとModifiersを組み合わせた情報)
int KeyValue キーの (KeyDataを整数値にしたもの)
bool Handled コントロールの既定の処理を回避するならば、trueに設定する
bool SuppressKeyPress コントロールの既定の処理を回避し、さらにKeyPressイベントを抑制するならば、trueに設定する
プロパティ - KeyEventArgs クラス (System.Windows.Forms) | MSDN

SuppressKeyPress

trueにするとHandledがtrueに設定され、KeyPressイベントも抑制されます。SuppressKeyPress - KeyEvent.cs

コントロールは処理対象となっていないキーが入力されると、無効な操作であることを示すために警告音 (Beep音) を鳴らすことがあります。そのような場合にこのプロパティでKeyPressイベントを抑制すると、その処理を無効にできます。

サンプルコード

protected override void OnKeyDown(KeyEventArgs e)
{
    base.OnKeyDown(e);

    switch(e.KeyData)
    {
        case Keys.Delete: // Delキーが押された
            break;

        case Keys.Control | Keys.A: // Ctrl + Aキーが押された
            break;
    }

    if (e.Modifiers == Keys.None) // 修飾キーが押されていない
    {
    }
}

なお、イベント以外で修飾キーの状態を知りたいならば、静的プロパティであるControl.ModifierKeysを参照します。

参考

参考書

Microsoft Learnから検索