C# 在离开 accept_button 事件之前进行验证

标签 c# .net acceptbutton

对不起,如果这是一个愚蠢的问题,但我是初学者。

我有一个带有两个按钮的简单自定义对话框:接受和取消。接受按钮是表单的接受按钮。

我想对 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/

相关文章:

c# - 检查 Cursor 是否在 groupBox1 或 groupBox2 C#

C#:Form.AcceptButton 的问题

c# - Microsoft Bot Framework 地理定位

c# - 自定义Treeview用户控件MVVM双击冒泡事件WPF

c# - 在 LINQ 中获取组的第一条记录?

c# - 不可变字典<TKey, TValue>

.net - Azure 事件中心同步机制

c# - DataTable中如何选择数据单个字符的大小写?

c# - C#4.0中如何调用动态类型的静态方法?

c# - AcceptButton不会关闭表单