防止对话框多次显示

时间:2011-01-14 08:44:21

标签: c# xna

我有以下代码:

        else if (state.IsKeyDown(Keys.H))
        {
            Help help = new Help();
            help.ShowDialog();
        }

出于某种原因,如果我按住H键,对话框会多次打开:alt text

3 个答案:

答案 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