2013-10-13 4 views
1

Я пытаюсь проверить адрес электронной почты, введенный в текстовое поле, я хочу, чтобы сообщение об ошибке отображалось, когда пользователь покидал поле адреса электронной почты с недопустимым адресом электронной почты «Адрес электронной почты НЕдействителен».Проверка адреса электронной почты в vb.net

Это то, что у меня есть под модуль:

Module Connection 
Sub ValidateEmail(Byval mail as String) 
Dim email as new System.Text.RegularExpressions.Regex("\[email protected]\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 

Теперь дело в том, когда я запускаю свою программу , это не позволяет мне закончить ввод адреса электронной почты, я ввожу первую букву, и это дает мне сообщение об ошибке «Электронная почта не действительна», я хочу, чтобы она позволила мне закончить ввод адреса электронной почты, а затем, когда я перейду к следующему полю он может дать мне сообщение, если письмо недействительно.

Любой, кто понимает мою проблему здесь, пожалуйста, помогите.

Спасибо

ответ

0

Вы используете событие OnChange

Вы можете использовать OnLeave, и в случае множества ошибок фокус обратно в текстовое поле. Вы можете пропустить проверку допустимого формата, пока определенная сумма не будет введена в Onchange, но выполните полную проверку onLeave.

Любой из вышеперечисленных имеет стук в действие, так как, возможно, некоторые более поздние функции нуждаются в электронной почте, чтобы быть действительными. Поэтому вам нужно будет проверить еще раз, прежде чем пытаться отправить или сохранить.

Или вы можете избавиться от уведомления, используя окно сообщения, например, показать изображение с ошибкой, если оно недействительно. Более поздняя функциональность, зависящая от действительного шаблона, может затем просто проверить, отображается ли «компонент ошибки». Скорее всего, я бы подтвердил форму на веб-странице.

Последнее, что я предпочитаю, а не большой поклонник ошибок в сообщениях.

+0

Спасибо, что он работает –

4

Когда вы дважды щелкните TextBox создает TextBox_TextChanged EventHandler, который стрелял каждый раз, когда изменения текста внутри текстового поля, вместо этого вы должны подписаться на событие, которое срабатывает, когда фокус теряется на TextBox, то есть TextBox_Leave. Для подписки на событие Leave нажмите F4 на TextBox и откроется окно свойств, перейдите на вкладку Events, найдите событие Leave и дважды щелкните по нему.

+0

Спасибо, он просто сработал –

+1

Рассмотрите возможность принятия ответов как «Принято», когда это действительно помогает – Lev

Смежные вопросы