Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
messagebox弹出两次(regex)_Regex_Vb.net - Fatal编程技术网

messagebox弹出两次(regex)

messagebox弹出两次(regex),regex,vb.net,Regex,Vb.net,这就是我的问题,所以当我在txtFullNameAdminAddPatientTextbox中输入一个数字时,它会弹出一个messagebox,显示“请只输入数字。但问题是,为什么它会弹出两次messagebox?提前感谢 If (Not (System.Text.RegularExpressions.Regex.IsMatch(txtFullNameAdminAddPatientPage.Text, "^[a-zA-Z\s]+$"))) Then txtFullNam

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

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

如果您使用此代码进行验证。请将此代码添加到文本框的LostFocus事件中。

使用验证事件和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

它是否与事件相关?可能是因为您正在将
文本框的
文本设置为空
字符串,这也不符合正则表达式。当然,您可以随时调试代码并自己找出答案。此外,请删除不光彩的标签垃圾邮件。滥用标签以吸引更多人查看在这里,你不必要的问题并不是交朋友的方式。你没有徽章表明你在注册时忽略了浏览网站的提示,因此你一点也不努力。你应该花一些时间在帮助中心学习如何正确使用此网站,否则你可能会发现你的问题被关闭它很快就出现了。我打赌它是在
TextChaned
事件中出现的。这将解释两次显示的消息框。您是否需要使用正则表达式?使用.TryParse看起来会简单得多。@chelsea如果我的答案对您来说是一个解决方案,请单击答案左侧的复选标记(勾号)接受它。