C#の:KeyEventArgs'キーデータからプレス正しいキーを取得
-
21-08-2019 - |
質問
私はKeyDown
イベントをトラップしていると私は、現在のキーが押さかどうかを確認できるようにする必要があります。 Ctrlキー + シフト + M ?
私は、列挙型のフラグとビットで、e.KeyData
からKeyEventArgs
列挙し、何かをKeys
を使用する必要があります知っているが、私は組み合わせをチェックする方法についてはよく分からない。
解決
あなたは修飾子を使用する必要があります> KeyEventArgsクラスのプロパティます。
のような何かます:
//asumming e is of type KeyEventArgs (such as it is
// on a KeyDown event handler
// ..
bool ctrlShiftM; //will be true if the combination Ctrl + Shift + M is pressed, false otherwise
ctrlShiftM = ((e.KeyCode == Keys.M) && // test for M pressed
((e.Modifiers & Keys.Shift) != 0) && // test for Shift modifier
((e.Modifiers & Keys.Control) != 0)); // test for Ctrl modifier
if (ctrlShiftM == true)
{
Console.WriteLine("[Ctrl] + [Shift] + M was pressed");
}
他のヒント
私はこれを使用するために、その最も簡単だと思います:
if(e.KeyData == (Keys.Control | Keys.G))
あなたは次のような技術を使用してチェックすることができます:
if(Control.ModifierKeys == Keys.Control && Control.ModifierKeys == Keys.Shift)
これは、通常のキーのチェックと組み合わせて、あなたが求める答えを与えるだろう。
所属していません StackOverflow