C# 单击按钮后不监视击键

C# 单击按钮后不监视击键,c#,visual-studio-2013,keydown,C#,Visual Studio 2013,Keydown,我做了一个游戏,角色使用wasd移动。在右侧的相同形式中,有一些按钮和其他控件,但当按下这些按钮和控件时,角色不会对按键事件做出响应。我如何解决这个问题?说明: 这是因为Windows有“焦点”的概念。键事件只发送到具有焦点的控件,并且在任何给定时间,表单中只有一个控件具有焦点。您可能有一些用于渲染角色的控件,并且已将关键事件处理程序放置在该控件上。当窗体第一次弹出时,您将焦点交给渲染控件,因此一切正常。但只要单击另一个控件,该控件就会获得焦点,因此渲染控件不再具有焦点 解决方案: 单击按钮后,

我做了一个游戏,角色使用wasd移动。在右侧的相同形式中,有一些按钮和其他控件,但当按下这些按钮和控件时,角色不会对按键事件做出响应。我如何解决这个问题?

说明:

这是因为Windows有“焦点”的概念。键事件只发送到具有焦点的控件,并且在任何给定时间,表单中只有一个控件具有焦点。您可能有一些用于渲染角色的控件,并且已将关键事件处理程序放置在该控件上。当窗体第一次弹出时,您将焦点交给渲染控件,因此一切正常。但只要单击另一个控件,该控件就会获得焦点,因此渲染控件不再具有焦点

解决方案:


单击按钮后,使用
SetFocus()
将焦点返回到渲染控件。

步骤1:显示代码。