【问题标题】:Determine if key was pressed in Windows Forms确定是否在 Windows 窗体中按下了键
【发布时间】:2015-11-18 17:43:25
【问题描述】:
我想在 C# Windows 窗体应用程序中制作游戏。
(这可能是个坏主意吗?:D)
我需要确定是否在我的计时器中按下了键。
游戏基本上是诸如标签或图片框之类的对象移动-它们的位置通过计时器更改,我需要确定何时按下键。
我做了一个和consoleApplication一样的游戏,我想为它做一个“图形界面”,但显然我不能使用我的这部分代码:
if (Console.KeyAvailable)
{
...
}
我对 c# 和编程本身还是很陌生,所以如果我的问题很愚蠢,我真的很抱歉 :-)
【问题讨论】:
标签:
c#
winforms
visual-studio-2015
keypress
【解决方案1】:
只需处理将获得焦点的控件的KeyPress 事件。
对于按键事件,事件参数的类型为KeyPressEventArgs,它将为您提供按下哪个键的详细信息
【解决方案2】:
你应该在你的 Form1 类中添加这个:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.A) MethodForProcessingTheKey();//for example
return base.ProcessCmdKey(ref msg, keyData);
}