无论结果如何,消息框都会关闭

时间:2014-05-06 16:43:27

标签: c#

我是消息框按钮的新手,无论如何都似乎关闭了表单。

private void btnFechar_Click(object sender, EventArgs e)
{
    DialogResult = MessageBox.Show("Desjea Sair?", "Aviso", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

    if (DialogResult == DialogResult.Yes)
    {
        this.Close();
    }
}

提前致谢

1 个答案:

答案 0 :(得分:4)

您正在设置表单的DialogResult(看起来像WinForms),它会一直关闭它。

在按钮点击事件中创建一个局部变量:

private void btnFechar_Click(object sender, EventArgs e)
{
    var dialogResult = MessageBox.Show("Desjea Sair?", "Aviso", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

    if (dialogResult == DialogResult.Yes)
    {
        this.Close();
    }
}

有关MSDN Form.DialogResult的更多信息:

  

如果表单显示为对话框,则使用DialogResult枚举中的值设置此属性将设置表单对话框结果的值,隐藏模式对话框,并返回控制呼叫形式。

因此,如果您像我们大多数人一样使用ShowDialog()显示表单,那么设置表单的DialogResult属性会使其关闭。