| 型 | 名前 | 説明 |
|---|---|---|
| bool | Control | Ctrlキーが押されているならば、true
|
| 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に設定する |
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を参照します。