我确信这可能已被多次询问过,但我无法找到它。我有一些代码可以根据问题的两个结果(正确或错误)打开消息框。目前,在消息框上单击“确定”将返回带有问题的表单。我想要的是发生两个动作中的一个,我只是不知道从哪里开始实现它。
如果正确,当messagebox关闭时,我想要刷新问题。如果错误,我希望消息框关闭,执行动作(循环),并允许另一次尝试。
我无法找到控制消息框表单关闭的事件。
有人可以分享一些建议吗?谢谢你的时间。
double userAnswer = double.Parse(txtResult.Text); if (Question.CheckIfRight(userAnswer)) MessageBox.Show("Right!!"); else MessageBox.Show("Wrong");
答案 0 :(得分:1)
在我看来,你的问题更多的是程序流程。
private void submitButton_Click(object sender, EventArgs e)
{
var userAnswer = double.Parse(txtResult.Text);
if (!Question.CheckIfRight(userAnswer))
{
MessageBox.Show("Wrong");
return;
}
MessageBox.Show("Right!!");
RefreshQuestion();
}
<强>更新强>
请注意,MessageBox.Show("Right!!")
会阻止调用代码,并等到用户点击“确定”按钮后再恢复为RefreshQuestion();
,这样您就不需要追踪任何事件了关闭。
答案 1 :(得分:0)
MessageBox.Show(...)
返回DialogResult
枚举中的一个值。您可以使用它来检查用户点击了哪个选项。
所以代码可以如下所示:
double userAnswer = double.Parse(txtResult.Text);
DialogResult dr;
if (Question.CheckIfRight(userAnswer))
{
dr = MessageBox.Show("Right");
}
else
{
dr = MessageBox.Show("Wrong");
}
if(dr == DialogResult.OK)
{
// Your "action" goes here
}
通过这种方式,您可以查看MessageBox
何时关闭以及用户点击了什么按钮来关闭它。基于此,您可以按照自己的方式继续学习。