我有Form
一个“Ok”Button
被分配为AcceptButton
. 当我点击这个Button
或Enter
按键时,Form
它会自动关闭,如预期的那样。在事件下,OkButtonClick
我编写了一个例程来检查所有字段是否都正确填写,如果不是通过MessageBox
. 问题是关闭后MessageBox
自动Form
关闭,但我希望它保持打开状态以允许用户更正他的输入。在这种情况下,我应该怎么做才能防止Form
被关闭?
问问题
28 次
1 回答
2
在该单击事件中,如果您的验证失败,请添加此行
this.DialogResult = DialogResult.None;
内部工作或多或少如下:
一般规则是,如果表单引擎的 DialogResult 属性设置为除 DialogResult.None 以外的任何值,表单引擎会自动关闭表单。
当表单引擎收到对按钮的单击时,引擎将表单 DialogResult 属性设置为按钮的 DialogResult 属性上的值,然后调用事件处理程序。如果您什么都不做,则在事件处理程序的出口处,引擎会查看表单的 DialogResult 属性并做出相应的反应。因此,如果要抵消默认行为,则需要将 DialogResult 设置回 None。
于 2020-11-27T10:30:58.263 回答