4

イベントをトラップしていKeyDownます。現在押されているキーが : Ctrl+ Shift+ M ?


、列挙型、および列挙型フラグとビットを含む何かを使用e.KeyDataする必要があることはわかっていますが、組み合わせを確認する方法がわかりません。KeyEventArgsKeys

4

3 に答える 3

12

KeyEventArgs クラスのModifiersプロパティを使用する必要があります。

何かのようなもの:

//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");
}
于 2009-05-14T21:12:55.207 に答える
1

これを使用するのが最も簡単だと思います:

if(e.KeyData == (Keys.Control | Keys.G))

于 2016-01-22T03:01:39.073 に答える
-2

次のような手法を使用して確認できます。

if(Control.ModifierKeys == Keys.Control && Control.ModifierKeys == Keys.Shift)

これを通常のキー チェックと組み合わせることで、求めている答えが得られます。

于 2009-05-14T21:18:16.613 に答える