我有以下代码:
else if (state.IsKeyDown(Keys.H))
{
Help help = new Help();
help.ShowDialog();
}
出于某种原因,如果我按住H键,对话框会多次打开:
答案 0 :(得分:4)
如果您使用XNA
作为输入,请保存之前的KeyState
,然后检查上一个KeyState
是否已发布以及当前KeyState
被按下了。
此link将帮助您正确解决问题。
答案 1 :(得分:2)
创建“帮助”对话框作为班级成员。初始化一次,然后更改代码:
else if (state.IsKeyDown(Keys.H))
{
if (!help.Visible)
help.ShowDialog();
}
答案 2 :(得分:0)
也许您使用KeyPress事件,您可以使用KeyUp事件(或KeyDown)。
另一种解决方法是在帮助弹出窗口中使用singleton pattern。