C# 在windows应用商店应用程序/winRT中检测多个键盘按下
当用户按UP+RIGHT+a时,我必须执行一项任务 UP、RIGHT和A三者各自有不同的功能。只是当它们被压在一起时,所有这些都应该发生,但不幸的是,当我尝试使用C# 在windows应用商店应用程序/winRT中检测多个键盘按下,c#,windows-runtime,C#,Windows Runtime,当用户按UP+RIGHT+a时,我必须执行一项任务 UP、RIGHT和A三者各自有不同的功能。只是当它们被压在一起时,所有这些都应该发生,但不幸的是,当我尝试使用键按下时,只有一个被执行:-( 是否有任何方法可以使用键下键或任何其他方法来完成此操作 向上、向右和A是键盘按钮 此代码不起作用:- if (e.Key == VirtualKey.Up ) { .... } if(e.key == VirtualKey.Down) { .....
键按下时,只有一个被执行:-(
是否有任何方法可以使用键下键
或任何其他方法来完成此操作
向上、向右和A是键盘按钮
此代码不起作用:-
if (e.Key == VirtualKey.Up ) {
....
}
if(e.key == VirtualKey.Down) {
.....
}
if(e.key == VirtualKey.A) {
...
}
...
if(e.Key==VirtualKey.Up){
....
}
if(e.key==VirtualKey.Down){
.....
}
if(e.key==VirtualKey.A){
...
}
...
当然,它不起作用,因为e
是的一个实例,因此它只代表一个键。但是,我认为,即使同时按下每个键,也会调用KeyDown事件。因此,您需要执行以下操作:
创建键的IEnumerable,例如可以是列表
创建一个bool,指示是否至少有一个键已按下,您可以通过KeyX事件控制该键。如果您需要有关该键的帮助,请发表评论
在KeyDown事件中,将e.key添加到该列表中,并在值设置为false时清除它
您现在有一个列表,其中包含当前持有的每个键,您可以使用它检查多个按键。
如果您需要一个代码示例,我将添加它。当然它不起作用,因为e
是的一个实例,因此它只代表一个键。但是,我认为,即使同时按下每个键,也会调用KeyDown事件。因此,您需要做的是:
创建键的IEnumerable,例如可以是列表
创建一个bool,指示是否至少有一个键已按下,您可以通过KeyX事件控制该键。如果您需要有关该键的帮助,请发表评论
在KeyDown事件中,将e.key添加到该列表中,并在值设置为false时清除它
您现在有一个列表,其中包含当前持有的每个键,您可以使用它检查多个按键。
如果您需要一个代码示例,我将添加它