1

我正在尝试验证在文本框中输入的电子邮件地址,我希望在用户离开电子邮件地址字段时显示错误消息,其中包含无效的电子邮件地址“电子邮件地址无效”。

这是我在模块下的内容:

Module Connection
Sub ValidateEmail(Byval mail as String)
Dim email as new System.Text.RegularExpressions.Regex("\S+@\S+\.\S+")

If email.IsMatch(mail) Then
Else
MsgBox("The Email is Not Valid",msgBoxStyle.Critical,"Invalid Email")
End If
End Sub

End Module

然后我双击电子邮件文本框并输入以下代码:

If txtemail.text = " " Then
Else
ValidateEmail(txtemail.text)
End If

现在的问题是当我运行我的程序时,它不允许我完成输入电子邮件地址,我输入第一个字母并给我错误消息“电子邮件无效”,我希望它允许我完成输入电子邮件地址然后当我移动到下一个字段时,如果电子邮件无效,它可以给我消息。

任何人在这里理解我的问题,请帮助。

谢谢你

4

2 回答 2

4

当您双击TextBox它时,它会创建TextBox_TextChanged事件处理程序,每次文本框内的文本更改时都会触发该事件处理程序,而您需要订阅在失去焦点时触发的事件TextBox,即TextBox_Leave. 要订阅Leave事件,请单击 F4TextBox并打开属性窗口,导航到Events选项卡,找到Leave事件并双击它。

于 2013-10-13T12:39:42.160 回答
0

您正在使用 OnChange 事件

您可以使用 Onleave,并在发生错误时将焦点设置回文本框。您可以跳过对有效格式的检查,直到在 Onchange 中输入一定数量,但请在 onLeave 上进行全面检查。

上述任何一项都会产生连锁反应,因为可能以后的某些功能需要电子邮件才能有效。因此,在尝试发送或保存之前,您需要再次检查。

或者您可以使用消息框摆脱通知,例如在无效时显示错误图像。后面的功能依赖于有效的模式,然后可以简单地检查“错误组件”是否可见。更像是我希望您验证网页上的表单。

最后一个是我的偏好,不是消息框错误的忠实粉丝。

于 2013-10-13T12:38:50.013 回答