C# 如何在C中同时检测多个按键?
我正在为我的游戏制作一个地图编辑器,我使用箭头键在地图区域滚动。目前我正在使用KeyDown事件,它可以很好地向上、向下、向左或向右滚动,但我的问题是如何允许对角滚动。目前,如果我按住向右箭头,然后在按住向右箭头的同时按住向下箭头,则向下方向将取代向右滚动,而不是对角滚动到右下角 例如,是否有一种方法可以检查在KeyDown事件中是否按下了另一个箭头键?我如何应对持有多个密钥C# 如何在C中同时检测多个按键?,c#,winforms,keypress,C#,Winforms,Keypress,我正在为我的游戏制作一个地图编辑器,我使用箭头键在地图区域滚动。目前我正在使用KeyDown事件,它可以很好地向上、向下、向左或向右滚动,但我的问题是如何允许对角滚动。目前,如果我按住向右箭头,然后在按住向右箭头的同时按住向下箭头,则向下方向将取代向右滚动,而不是对角滚动到右下角 例如,是否有一种方法可以检查在KeyDown事件中是否按下了另一个箭头键?我如何应对持有多个密钥 谢谢,不容易,第二次击键的向下键阻止第一次击键重复。您需要做的是在KeyDown事件中记录该键已按下。在KeyUp事件中
谢谢,不容易,第二次击键的向下键阻止第一次击键重复。您需要做的是在KeyDown事件中记录该键已按下。在KeyUp事件中取消该状态。接下来,使用一个250毫秒的计时器,在其滴答事件中检查按键的状态。不容易,第二次击键的向下键会阻止第一次击键的重复。您需要做的是在KeyDown事件中记录该键已按下。在KeyUp事件中取消该状态。接下来,使用一个250毫秒的计时器,并在其滴答事件中检查按键的状态。最简单的方法是使用Windows API调用获取键盘上每个按键的状态,然后检查您感兴趣的按键:
您可以在KeyDown/keydup上调用它,检查键盘的状态并采取适当的行动。最简单的方法是使用Windows API调用获取键盘上每个键的状态,然后检查您感兴趣的键:
您可以在按键下/键上调用它,检查键盘的状态,并采取适当的行动。谢谢,我考虑过这一点,但我将平台特定的调用保持在最低限度,这样我就可以保留移植到Mono的机会。谢谢,我考虑过这一点,但我将平台特定的调用保持在最低限度,这样我就有机会移植到Mono。干杯,我会这样做。干杯,我会这样做。