退出窗口时出错

时间:2013-12-05 02:12:39

标签: winforms visual-studio-2010 c++-cli

在下图中,当我点击File-> New Game时,我看到这个窗口: enter image description here

如果我继续并按开始游戏,一切都很好。但如果我只是点击红色X,我会收到此错误: enter image description here

这是File-> New Game:

的代码
private: System::Void newGameToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e)
    {
        NG->ShowDialog();
        ShowPossible();
        update_score();
        if(pc_exists()==1)
            ComputerPlay();
    }

NG->ShowDialog()显示新游戏对话框。

然后ShowPossible()在棋盘上显示了一些内容(暗示可能的动作)。 那就是制造麻烦的东西。 我需要一些在X点击时从newGameToolStripMenuItem_Click()退出而不是继续ShowPossible()的代码。

我尝试在ready格式中创建一个名为NewGame的全局变量,并在表单加载时将其初始化为0,并且只有当我单击“开始游戏”时,它才会变为1.最后添加此条件以上功能:

...
if(ready)
    ShowPossible();
...

所以这样,如果我没有点击开始游戏,只点击X,ready将为0,它将不会进入ShowPossible()。但它没有用。不知何故,当按钮Start Game的代码完成时,ready仍为0。

有没有更有效的方法来解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:1)

编辑:

由于您使用的是System.Windows.Forms,请检查DialogResult枚举(谢谢Chris):

if (NG->ShowDialog() == System::Windows::Forms::DialogResult::Cancel)
    return;

来自MSDN

  

当表单显示为模式对话框时,单击“关闭”   按钮(表单右上角带有X的按钮)   导致隐藏窗体并设置DialogResult属性   to DialogResult.Cancel。