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

Sha*_*ica 6 c# winforms

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

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

我该怎么做?

小智 9

在错误添加:

this.DialogResult = DialogResult.None
Run Code Online (Sandbox Code Playgroud)


dig*_*All 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...
}
Run Code Online (Sandbox Code Playgroud)

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