C#KeyDownEvent如何分配双键组合?
在C#中的KeyDownEvent中,我需要一个两个键的组合,但不知道如何创建它,因为我需要它用于某个函数可能是lshift key+F4,但如何编写它 类似:C#KeyDownEvent如何分配双键组合?,c#,visual-studio,keydown,C#,Visual Studio,Keydown,在C#中的KeyDownEvent中,我需要一个两个键的组合,但不知道如何创建它,因为我需要它用于某个函数可能是lshift key+F4,但如何编写它 类似:private void KeyDownEvent(int-keyId,string-keyName) case Keys.F4: .............. case key.F5: .............. case Keys.F6: .............. 大小写键。lshift键+F7:(?) 代码不完整,因为我只需要
private void KeyDownEvent(int-keyId,string-keyName)
case Keys.F4:
..............
case key.F5:
..............
case Keys.F6:
..............
大小写键。lshift键+F7:
(?)
代码不完整,因为我只需要知道如何编写两个键的组合
如果您需要更多信息,只需说出以下文字:)
问候语最简单的方法是使用.net 3.0之后提供的键盘类
private void KeyDownEvent(int keyId, string keyNum)
{
case Keys.F7:
if(Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift)
{
//do stuff
}
}
另一种方法是在方法(全局)之外生成一个布尔值,当按下某个键时,该值可以变为true。您还需要附加到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;
}
您可以使用static属性确定Shift是否已按下:
case F7:
if(ModifierKeys == Keys.Shift)
// now you do your Shift-F7 logic
break;
Keydown并不是进行和弦键检查的正确位置。但是,你可以做的是检查你的另一个密钥处理程序中的左移键的状态。注意,前者驻留在演示文稿基金会(WPF)中,这可能是或可能不是一个可接受的导入。