首页 > 解决方案 > 消息框弹出两次(正则表达式)

问题描述

所以这是我的问题,所以当我在 中输入一个数字时txtFullNameAdminAddPatientTextbox,它会弹出一个messagebox显示“请只输入数字。但问题是,为什么它会弹出messageboxTWICE?提前谢谢

 If (Not (System.Text.RegularExpressions.Regex.IsMatch(txtFullNameAdminAddPatientPage.Text, "^[a-zA-Z\s]+$"))) Then
            txtFullNameAdminAddPatientPage.Text = ""
            MessageBox.Show("Please only enter digit.")
        End If

标签: regexvb.net

解决方案


使用 Validating 事件和 ErrorProvider 类。

Private err As New ErrorProvider()

Private Sub txtFullNameAdminAddPatientPage_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles txtFullNameAdminAddPatientPage.Validating
    If Not Integer.TryParse(txtFullNameAdminAddPatientPage.Text, Nothing) Then
        e.Cancel = True
        err.SetError(TextBox1, "This text box must be a number.")
    Else
        err.Clear()
    End If
End Sub

推荐阅读