如何检测键盘上最后按下的箭头键

Posted

技术标签:

【中文标题】如何检测键盘上最后按下的箭头键【英文标题】:How can i detect which Arrow Key was pressed last on my keyboard 【发布时间】:2021-12-15 04:04:21 【问题描述】:

我想在 Windows 窗体中制作蛇游戏,但不知道如何检测键盘的输入。 我已经阅读了一些解决方案,其中大多数看起来都是这样的

private void _calendar_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
                
                    switch (e.KeyCode)
                    
                        case Keys.Down:
                        case Keys.Right:
                            //action
                            break;
                        case Keys.Up:
                        case Keys.Left:
                            //action
                            break;
                    
                

但我真的不知道如何实现这样的事情,因为我有一个循环,我需要检测最后按下哪个箭头键。当我尝试调用该功能时,我不知道我必须给它什么参数。

【问题讨论】:

【参考方案1】:

您需要捕获您拥有蛇的对象上的键事件。所以当这是一张图片时,需要在图片的keydown事件上做:

选择图片框,在属性(右下角)中选择您的事件。双击 KeyDown。现在您将看到如下代码。

private void PictureBox1_KeyDown(object sender, KeyEventArgs e)



您可以从这里开始实施。无需循环!

同时在游戏中,确保图片框具有焦点。如果这不是一个选项,您可以考虑在表单本身上实现该事件。

【讨论】:

以上是关于如何检测键盘上最后按下的箭头键的主要内容,如果未能解决你的问题,请参考以下文章

检测蓝牙键盘上的 Tab 键按下

如何检测在 C 中使用诅咒按下的箭头键?

C语言 如何在一段时间内检测键盘是不是按下

检测修饰键按下?

下拉列表选择的文本更改箭头键按下

JavaScript onkeydown事件入门实例(键盘某个按键被按下)