2012-11-22 1 views
2
public void Form1_Load(Object sender, EventArgs e) 
    { 
      // Other initialization code 
     mtxtEmailID.Mask = ".........."; 

ce qui devrait être le type de masque en place de pointsEn C fenêtres # formes comment un MaskedTextBox pour l'adresse e-mail peut être mis en œuvre

  mtxtEmailID.MaskInputRejected += new MaskInputRejectedEventHandler(mtxtEmailID_MaskInputRejected) 
    } 

    void mtxtEmailID_MaskInputRejected(object sender, MaskInputRejectedEventArgs e) 
    { 
     if(!Regex.IsMatch(txtEmailID.Text, "^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$")) 

la regex ici me donne l'erreur, laissez-moi savoir ce qui est le droit un pour la validation par email.

  { 
     toolTip1.ToolTipTitle = "Invalid Input"; 
     toolTip1.Show("Enter valid email address", mtxtEMailID); 
     } 
    } 
+0

Le MaskedTextBox n'est pas assez polyvalent pour valider une adresse e-mail. –

+0

http://stackoverflow.com/q/1365407/1220971 – Bridge

+0

@Bridge: Je ne faisais que passer par le RFC, merci pour la suggestion. chaque réponse m'éclaire – Sri

Répondre

3

Vous pouvez trouver des informations sur les MaskedTextBox here


Si vous souhaitez valider une adresse e-mail Regex est pas le droit choice.There de nombreux cas de coin que la couverture regex wont .. .

Utilisez MailAddress

try 
{ 
    address = new MailAddress(address).Address; 
    //email address is valid since the above line has not thrown an exception 
} 
catch(FormatException) 
{ 
    //address is invalid 
} 

Mais si vous avez besoin regex, il devrait être:

[email protected]+ 
+0

laissez-moi essayer les deux méthodes .. mais l'expression rationnelle complète me fait peur. ça marche parfaitement. Il occupe certainement beaucoup d'espace de code. – Sri

+0

@Sri ne pas utiliser ce grand 'regex'. utilisez la classe 'MailAddress' donnée ci-dessus .. n'utilisez pas ce gros' regex'. – Anirudha

+0

Je me demandais comment utiliser l'outil et où utiliser la méthode try and catch. L'entrée ID email sera prise dans la zone de texte. – Sri

0

Ce type d'approche dans mon projet fait la simple validation e-mail ne considérant que quelques facteurs qui sont importants dans le courrier électronique comme « @ » et ' . ' . Je n'ai pas pensé à le rendre complexe car l'adresse e-mail n'est pas obligatoire pour tous.

private void txtEmailID_Validating(object sender, System.ComponentModel.CancelEventArgs e) 
    { 
     string errorMsg; 
     if (!ValidEmailAddress(txtEmailID.Text, out errorMsg)) 
     { 
      // Cancel the event and select the text to be corrected by the user. 
      e.Cancel = true; 
      txtEmailID.Select(0, txtEmailID.Text.Length); 

      // Set the ErrorProvider error with the text to display. 
      this.errorProvider1.SetError(txtEmailID, errorMsg); 
     } 
    } 


    public bool ValidEmailAddress(string txtEmailID, out string errorMsg) 
    { 
     // Confirm that the e-mail address string is not empty. 
     if (txtEmailID.Length == 0) 
     { 
      errorMsg = "e-mail address is required."; 
      return false; 
     } 

     // Confirm that there is an "@" and a "." in the e-mail address, and in the correct order. 
     if (txtEmailID.IndexOf("@") > -1) 
     { 
      if (txtEmailID.IndexOf(".", txtEmailID.IndexOf("@")) > txtEmailID.IndexOf("@")) 
      { 
       errorMsg = ""; 
       return true; 
      } 
     } 

     errorMsg = "e-mail address must be valid e-mail address format.\n" + 
      "For example '[email protected]' "; 
     return false; 
    } 

    private void txtEmailID_Validated(object sender, EventArgs e) 
    { 
     // If all conditions have been met, clear the ErrorProvider of errors. 
     errorProvider1.SetError(txtEmailID, ""); 
    } 
Questions connexes