我制作了一个角色使用wasd移动的游戏。在右侧的相同形式中有一些按钮和其他控件但是当它们被按下时,角色不会对keydown事件做出响应。我该如何解决?
答案 0 :(得分:0)
说明:
这是因为Windows具有“焦点”的概念。 (阅读它。)键事件仅发送到具有焦点的控件,并且在任何给定时间,表单中只有一个控件具有焦点。您可能有一些控件可以渲染您的角色,并且您已将关键事件处理程序放在该控件上。当表单首次弹出时,您将焦点放在渲染控件上,所以一切都很好。但是一旦你单击另一个控件,该控件就会获得焦点,因此渲染控件不再具有焦点。
解决方案:
单击按钮后,使用SetFocus()
将焦点返回到渲染控件。