单击按钮后按键不受监控

时间:2015-10-06 20:09:59

标签: c# visual-studio-2013 keydown

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

1 个答案:

答案 0 :(得分:0)

说明:

这是因为Windows具有“焦点”的概念。 (阅读它。)键事件仅发送到具有焦点的控件,并且在任何给定时间,表单中只有一个控件具有焦点。您可能有一些控件可以渲染您的角色,并且您已将关键事件处理程序放在该控件上。当表单首次弹出时,您将焦点放在渲染控件上,所以一切都很好。但是一旦你单击另一个控件,该控件就会获得焦点,因此渲染控件不再具有焦点。

解决方案:

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