【发布时间】:2013-12-05 02:12:38
【问题描述】:
在下图中,当我点击 File->New Game 时,我看到了这个窗口:
如果我继续并按开始游戏,一切正常。但是,如果我只是单击红色 X,我会收到此错误:
这是文件->新游戏的代码:
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()。
我尝试在表单NewGame 中创建一个名为ready 的全局变量,并在表单加载时将其初始化为0,只有当我单击开始游戏时它才会变为1。最后在上述函数中添加了这个条件:
...
if(ready)
ShowPossible();
...
所以这样如果我不点击开始游戏,只点击X,ready 将是0,它不会进入ShowPossible()。但它没有用。不知何故,当按钮 Start Game 的代码完成时,ready 仍然为 0。
有没有更有效的方法来处理这个问题?
谢谢!
【问题讨论】:
-
ShowDialog返回值类型:System.Windows.Forms.DialogResult DialogResult 值之一。 -
点击
break,看看调试器哪里出错了。 -
@RetiredNinja 但我说问题在于它进入了 ShowPossible()。我想这意味着我点击了
break。
标签: winforms visual-studio-2010 c++-cli