C#如何在MessageBox上设置表单关闭事件

时间:2015-03-25 00:22:45

标签: c# forms messagebox

我确信这可能已被多次询问过,但我无法找到它。我有一些代码可以根据问题的两个结果(正确或错误)打开消息框。目前,在消息框上单击“确定”将返回带有问题的表单。我想要的是发生两个动作中的一个,我只是不知道从哪里开始实现它。

如果正确,当messagebox关闭时,我想要刷新问题。如果错误,我希望消息框关闭,执行动作(循环),并允许另一次尝试。

我无法找到控制消息框表单关闭的事件。

有人可以分享一些建议吗?谢谢你的时间。

double userAnswer = double.Parse(txtResult.Text); if (Question.CheckIfRight(userAnswer)) MessageBox.Show("Right!!"); else MessageBox.Show("Wrong");

2 个答案:

答案 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何时关闭以及用户点击了什么按钮来关闭它。基于此,您可以按照自己的方式继续学习。