Salut à tous !
Me revoilà avec un nouveau problème... oui ça faisait longtemps mais vous me manquiez !
Voilà, je suis en train de faire un formulaire C# pour enregistrer des clients, et lors de l'enregistrement je demande d'entrer l'adresse mail (jusque là ça va) mais le soucis c'est que je ne doit pas accepter les caractères interdits mais je ne sais pas comment les éviter...
J'ai commencé par faire
mais bien sûr il n'y a pas que 1 caractère interdit et je me vois mal tous les écrire...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if (!tbx_client_mail1.Text.Contains("mon caractere")) { MessageBox.Show("oh ! Tu t'es trompé"); tbx_client_mail1.Text = tbx_client_mail1.Text.Remove(tbx_client_mail1.Text.Length - 1); }
Donc je me suis dis "Hey ! pourquoi pas mettre les bons caractères dans la base de données et remplir une liste ?"
Du coup j'ai essayé de mettre ça sur mon textbox
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 List<string> lesChar = new List<string>(); ... ... ... private void PageClientCreation_Load(object sender, EventArgs e) { string requete = "SELECT * FROM caractere"; CURS cs = new CURS(ChaineConnexion); cs.ReqSelect(requete); string caractere; while (!cs.Fin()) { caractere = cs.champ("TEXTE").ToString(); lesChar.Add(caractere); cs.suivant(); } cs.fermer(); ... ... ...
ou même
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 private void tbx_client_mail1_TextChanged(object sender, EventArgs e) { int i =0; foreach (string element in lesChar) { if (!tbx_client_mail1.Text.Contains(element.ElementAt(i))) { MessageBox.Show("oh !"); //tbx_client_mail1.Text = tbx_client_mail1.Text.Remove(tbx_client_mail1.Text.Length - 1); i++; } }
Mais lorsque je rentre un caractère valide il me sort mon message box pour tous les autres dans ma base (logique je sais).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 private void tbx_client_mail1_TextChanged(object sender, EventArgs e) { foreach (string element in lesChar) { if (!tbx_client_mail1.Text.Contains(element)) { MessageBox.Show("oh !"); //tbx_client_mail1.Text = tbx_client_mail1.Text.Remove(tbx_client_mail1.Text.Length - 1); } }
Donc j'ai besoin de vous, afin de pouvoir supprimer le caractère interdit tout en informant l'utilisateur de sa faute de frappe.
Tanaes.
Partager