2010-12-01 5 views
0

Est-ce que quelqu'un pourrait montrer des conseils (je ne demande pas de faire mes devoirs) avec la validation d'un formulaire avec plusieurs zones de texte? L'utilisateur serait informé quel était le domaine problématique.VB.NET Valeurs de texte multiples Validation

La source de la forme:

Private Sub btnNewUser_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNewUser.Click 
    'If txtEmail.Text.Contains(" "c) Or Not(InStr(txtEmail.Text, "@")) Then 
    'txtEmail.Clear() 
    'ElseIf txtPassword.Text.Contains(" "c) Then 
    'txtPassword.Clear() 
    'ElseIf txtPIN.Text ''#uh 
    aryUserRecord(0) = txtEmail.Text 
    aryUserRecord(1) = txtPassword.Text 
    aryUserRecord(2) = txtPIN.Text ''#consists of a letter then two numbers then another      addNewUser = Join(aryUserData, ",") 
    ''#more source 
    Me.DialogResult = DialogResult.OK 
End Sub 
+0

Quel genre de validation? – Oded

+0

Validez si l'utilisateur a entré des informations correctes dans les trois zones de texte. Si l'un d'entre eux a des informations erronées alors informer l'utilisateur en cliquant sur le bouton quelle était la zone de texte de problème, effacez-le et laissez l'utilisateur entrer à nouveau l'info pour cela. – grantY

+1

OK. Que signifie "bonne information"? Que signifie "mauvaise information"? Figure cela en premier. – Oded

Répondre

0

Essayez de lire sur RegularExpressionValidator.

Vous pouvez en affecter un pour chaque zone de texte afin de valider le côté client d'entrée utilisateur à l'aide d'expressions régulières, ce qui, selon vos commentaires à la question, semble être un bon choix.

avec WinForms, vous aurez besoin de mettre en œuvre des événements Validating et Validated

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.causesvalidation.aspx

dans le lien ci-dessus un exemple est fourni par e-mail. Cela devrait vous donner une référence pour commencer

+0

Toutes les informations viennent pour ASP.net pour une raison quelconque. Je n'essaie pas d'utiliser ce programme pour une application web. C'est un programme de validation hors ligne sans base de données ou quelque chose comme ça. Le vrai problème est de savoir comment je le fais, donc un msgbox qui apparaîtra pointera le champ qui est faux. – grantY

+0

Souhaitez-vous essayer/attraper un travail d'exception? – grantY

+0

mon erreur, l'édition de la réponse – Josh

5

Vous pouvez utiliser un ErrorProvider pour marquer les champs problématiques. Vous devrez vous connecter avec l'événement de validation pour chaque TextBox. Quelque chose comme ceci:

Private Sub TextBox1_Validating(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating 
     If TextBox1.Text = "" Then 
      ErrorProvider1.SetError(TextBox1, "Text cannot be empty") 
      e.Cancel = True 
     End If 
End Sub 

Ensuite, lorsque la zone de texte ne valide en fait, vous pouvez brancher à l'événement Validated pour effacer le ErrorProvider:

Private Sub TextBox1_Validated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Validated 
     ErrorProvider1.SetError(TextBox1, "") 
End Sub 
+0

Il met en évidence ErrorProvider1. Qu'est-ce que je déclare comme? – grantY

+1

ErrorProvider est un contrôle que vous pouvez supprimer sur votre formulaire dans le concepteur. Il fera une petite marque à côté de vos champs problématiques. – msergeant