c# - 如何在 C# 中同时检测多个按键?

标签 c# winforms keypress

我正在为我的游戏开发 map 编辑器,我使用箭头键在 map 区域中滚动。目前我正在使用 KeyDown 事件,它可以很好地向上、向下、向左或向右滚动——但我的问题是如何允许对角线滚动。目前,如果我按住右箭头,然后(同时按住右箭头)我然后按住向下箭头,向下方向代替向右滚动,而不是沿对角线滚动到右下角。

例如,有没有一种方法可以检查在 KeyDown 事件中是否按下了另一个箭头键?我如何响应持有多个 key ?

谢谢

最佳答案

不容易,第二次击键的按下会阻止第一次重复。您要做的是在 KeyDown 事件中记录该键已按下。在 KeyUp 事件中取消该状态。接下来,使用计时器(~250 毫秒)并在其 Tick 事件中检查键的状态。

关于c# - 如何在 C# 中同时检测多个按键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3694924/

相关文章:

c# - 防止服务器相同用户名中的多个实例

c# - 不能将 InvokeRepeating 与方法参数一起使用。我该如何解决这个问题?

c# - 从已安装的应用程序中获取 GUID c#

c# - 在没有用户输入的情况下以编程方式拆卸 MessageBox

javascript - 使用 Javascript 检测何时按下 Tab 键

c# - 如何在 Rx.Net 中使用异步累加器实现 ScanAsync 运算符?

c# - 将 BindList<Classname> 转换为 BindingList<Interface>

c# - 如何从单击的 ToolStripDropDownButton 项中获取字符串?

vb6 - 无论我的表单上的哪个控件是目标,我如何捕捉关键的上升/下降?

java - 在 Java 中移动对象(KeyPressed)