vb.net - Errorprovider 在使用 Windows 关闭按钮时显示错误 (X)

标签 vb.net winforms validation errorprovider

当我尝试使用窗口关闭按钮(X)关闭表单时,有什么方法可以关闭该死的错误提供程序。它会触发验证,用户必须先填写所有字段才能关闭表单。这将是一个可用性问题,因为许多人倾向于使用 (X) 按钮关闭表单。

我放置了一个取消按钮,导致验证为 false,并且它还会触发验证。

我发现有人说如果你使用 Form.Close() 函数验证就会运行...... 我怎样才能克服这个烦人的功能。

我有一个 MDI 结构并使用显示表单

 CreateExam.MdiParent = Me
        CreateExam.Show()

在 mdi 父级的菜单项上单击

并将其设置为验证

Private Sub TextBox1_Validating(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
        If String.IsNullOrEmpty(TextBox1.Text) Then
            Err.SetError(TextBox1, "required")
            e.Cancel = True
        End If
        If TextBox1.Text.Contains("'") Then
            Err.SetError(TextBox1, "Invalid Char")
            e.Cancel = True
        End If
    End Sub

非常感谢任何帮助。 谷歌搜索仅显示用户在使用命令按钮作为关闭按钮时遇到问题的结果,这在我的情况下也导致了问题

最佳答案

ValidateChildren() 方法阻止表单关闭。将此代码粘贴到您的表单中以修复该问题:

protected override void OnFormClosing(FormClosingEventArgs e) {
  e.Cancel = false;
}

关于vb.net - Errorprovider 在使用 Windows 关闭按钮时显示错误 (X),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2481706/

相关文章:

c# - 无法以编程方式显示设置的 Winforms 文本框值

forms - Symfony2 : my form returns false from isValid() but empty array for getErrors() from unique constraint condition

javascript - 在客户端设置显示没有任何 asp 面板在任何 linkBut​​tonclick 上重新显示它

c - 为什么Winform BeginInvoke太慢?

C# 在datagridview中导入csv文件

Django:未调用 CBV 方法 form_valid()

c# - MVC 条件验证?

mysql - 获取当前登录用户

mysql - 无法使用 vb.net 从 mysql 验证 bcrypt-hashed 密码

windows - 如何禁用 Windows 注册表中的剪切、复制、粘贴、重命名等操作?