C#:如何取消在表单上设置为“接受”或“取消”按钮的按钮的关闭操作?

时间:2010-10-12 12:47:31

标签: c# winforms

我的表单上有一个按钮btnOK,其DialogResult属性为OK。表单的AcceptButton属性设置为btnOK。因此,如果我单击该按钮,表单将自动关闭。

现在,在btnOK_Click()方法中,我希望能够取消关闭操作,例如如果出现错误,我想显示一个消息框而不是关闭表单。

我该怎么做?

3 个答案:

答案 0 :(得分:9)

错误时添加:

this.DialogResult = DialogResult.None

答案 1 :(得分:6)

IMO您不必在按钮上设置DialogResult属性,而是直接在btnOK_Click事件中的表单上设置:

private void btnOK_Click(object sender, EventArgs e)
{
    if (yeahLetsClose)
        this.DialogResult = DialogResult.OK;  // form will close with OK result
    // else --> form won't close...
}

BTW,AcceptButton属性与ENTER键相关(当您在表单上按下它时,AcceptButton将被按下)

答案 2 :(得分:1)

为表单关闭事件添加事件处理程序。 EventArgs参数应具有Cancel属性。