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;
我在 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
之后可用的键盘 classprivate 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;