1

当用户按下 UP + RIGHT + A 时,我必须执行一项任务。

UP 、 RIGHT 和 A 三个都有各自不同的功能。只是当把它们压在一起时,它们都应该发生,但不幸的是,当我尝试使用它时,KeyDown只有 A 被执行:-(

有没有KeyDown办法用其他方法或任何其他方式使用其他东西?

UP ,RIGHT 和 A 是键盘按钮..

此代码不起作用:-

如果(e.Key == VirtualKey.Up){
           ……
}
如果(e.key == VirtualKey.Down){
            ......   
}
如果(e.key == VirtualKey.A){
             ...
}

...

 
4

1 回答 1

1

当然它不起作用,因为它是KeyEventArgse的一个实例,因此它只代表一个键。但是,我认为,即使同时按下,也会为每个按下的键调用 KeyDown 事件。因此,您需要执行以下操作:

  1. 创建一个 IEnumerable 键,例如可以是一个列表
  2. 创建一个布尔值,指示是否至少有一个键被按下,您可以通过 KeyX 事件进行控制。如果您需要帮助,请发表评论。
  3. 在 KeyDown 事件中,将 e.key 添加到该列表,并在您的值设置为 false 时将其清除

您现在有一个包含当前持有的每个键的列表,您可以使用它来检查多个按键。如果您需要代码示例,我会添加它。

于 2013-07-26T18:16:02.123 回答