C# KeyDownEvent 如何分配两个组合键?

C# KeyDownEvent how to assign a two key combination?

我在 C# 的 KeyDownEvent 中需要两个组合键,但不知道如何创建它,因为我需要它来实现某个功能,可能是 LShiftKey + F4,但如何编写它?

赞:private void KeyDownEvent(int keyId, string keyName) case Keys.F4: .............. case Keys.F5: .............. case Keys.F6: .............. case Keys.LShiftKey+F7:(?)

代码不完整,我只需要知道如何编写两个组合键。

如果您需要更多信息,请告诉我。 :)

问候

最简单的方法是使用 .net 3.0

之后可用的键盘 class
private void KeyDownEvent(int keyId, string keyNum)
{
   case Keys.F7:
      if(Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift)
   {
      //do stuff
   }
}

另一种方法是在方法之外创建一个布尔值(全局),当按下某个键时可以将其变为真。您还需要附加到 KeyUpEvent 以在它停止时将此布尔值转回 false。这是一个例子:

bool shiftKeyPressed = false

private void KeyDownEvent(int keyId, string keyName)
{
   case Keys.LShiftKey: shiftKeyPressed = true;
   case Keys.F7:
      if(shiftKeyPressed){//do stuff}
}

private void KeyUpEvent(int keyId, string keyName)
{
   case Keys.LShiftKey: shiftKeyPressed = false;
}

您可以使用 ModifierKeys 静态 属性 判断 Shift 是否按下:

case F7:
    if(ModifierKeys == Keys.Shift)
        // now you do your Shift-F7 logic
    break;