对不起,如果这是一个愚蠢的问题,但我是初学者。
我有一个带有两个按钮的简单自定义对话框:接受和取消。接受按钮是表单的接受按钮。
我想对 Accept_Click 事件做一些验证并决定我是否可以关闭对话框,但每次它离开这个方法时,对话框都会自动关闭并返回 Ok。
我该怎么做才能阻止对话框自行关闭?或者我必须以其他方式做事?
谢谢
最佳答案
我会有一个表单级变量(称之为 _vetoClosing
)在接受按钮的 Click 事件中,我会运行验证并根据它设置变量:
private void acceptButton_Click(object sender, EventArgs e)
{
// Am I valid
_vetoClosing = !isValid();
}
然后在 FormClosing 事件中,如果 _vetoClosing 为真,我将取消关闭
private void Form_FormClosing(object sender, FormClosingEventArgs e)
{
// Am I allowed to close
if (_vetoClosing)
{
_vetoClosing = false;
e.Cancel = true;
}
}
关闭 Accept 按钮不是最佳选择,因为您失去了 Enter to Press 功能。
关于C# 在离开 accept_button 事件之前进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/784167/