确定是否在 Windows 表单中按下了键
Determine if key was pressed in Windows Forms
我想用 C# 制作游戏 Windows 表单应用程序。
(这可能是个坏主意吗?:D)
我需要确定是否按下了计时器中的键。
游戏基本上是移动标签或图片框等对象 - 它们的位置通过计时器更改,我需要确定何时按下键。
我制作了与 consoleApplication 相同的游戏,我想为它制作一个 "graphic interface",但显然我不能使用我的这部分代码:
if (Console.KeyAvailable)
{
...
}
我对 C# 和编程本身还很陌生,所以如果我的问题很愚蠢,我真的很抱歉:-)
只需处理将获得焦点的控件的 KeyPress
事件。
对于按键事件,事件参数的类型为 KeyPressEventArgs
,它将为您提供按下哪个键的详细信息
您应该将此添加到您的 Form1 class:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.A) MethodForProcessingTheKey();//for example
return base.ProcessCmdKey(ref msg, keyData);
}
我想用 C# 制作游戏 Windows 表单应用程序。 (这可能是个坏主意吗?:D)
我需要确定是否按下了计时器中的键。 游戏基本上是移动标签或图片框等对象 - 它们的位置通过计时器更改,我需要确定何时按下键。
我制作了与 consoleApplication 相同的游戏,我想为它制作一个 "graphic interface",但显然我不能使用我的这部分代码:
if (Console.KeyAvailable)
{
...
}
我对 C# 和编程本身还很陌生,所以如果我的问题很愚蠢,我真的很抱歉:-)
只需处理将获得焦点的控件的 KeyPress
事件。
对于按键事件,事件参数的类型为 KeyPressEventArgs
,它将为您提供按下哪个键的详细信息
您应该将此添加到您的 Form1 class:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.A) MethodForProcessingTheKey();//for example
return base.ProcessCmdKey(ref msg, keyData);
}