Comment puis je vérifier si un champs est numerique ? et s'il est vide ? avec le error^provider ? est ce que je dois créer un errorProvider pour tous les textbox de mon formulaire ou chacun aura un son propre error provider ?
Comment puis je vérifier si un champs est numerique ? et s'il est vide ? avec le error^provider ? est ce que je dois créer un errorProvider pour tous les textbox de mon formulaire ou chacun aura un son propre error provider ?
ErrorProvider sert seulement à afficher l'erreur, pas à faire la validation. Il suffit que tu en mettes un seul sur la form, pas besoin d'en mettre un par contrôle. C'est très facile à utiliser, regarde dans la doc pour un exemple.
Pour tester si une valeur est numérique, il y a différentes méthodes...
Tu peux utiliser Int32.TryParse (pour un entier) ou Double.TryParse (pour un double ou flottant), ou alors tu peux référencer l'assembly Microsoft.VisualBasic pour utiliser la méthode Information.IsNumeric. Ou alors tu peux aussi t'en sortir avec la méthode Convert.ToInt32 (ou Convert.ToDouble), avec un try/catch
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Ok, j'ai pu utilisé le error provider, pour tester si des champs sont numérique (isDigit)ou letter(isLetter), mais j'ai un autre petit soucis par rapport a autre champs qui ne doivent pas etre vide, le error provider ne detetcte pas ca, ce que je compte faire c'est de mettre deux error providers, le premier pour tester la validité des champs avec l'evenement validating, et l'autre au moment de la validation du formulaire pour tester si les champs sont vides ???,
j'ai un champ qui contient des lettres + nombres + le caractere "/" ? je sais pas si vous avez une idée sur comment puis je vérifier la validité de ce champs ?
Encore une fois, le ErrorProvider ne détecte rien du tout, il ne sert qu'à l'affichage de l'erreur. Pas la peine d'en créer un 2e pour tester autre chose, tu peux utiliser le même, puisque de toutes façons ce n'est pas lui qui fait le test.
Pour tester si le champ est vide, utilise la méthode String.IsNullOrEmpty
avec une expression régulière peut-être...
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
mais quel evenement je vais utilisé la chaine pour detecter si le champ est vide ?
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Bah concrétement l'ERROR Provider comme dit plus haut va te servir par exemple avant un enregistrement a vérifier si tout tes champs sont bien formés ou ne sont pas nulls pour certain si en base les NULLABLES ne sont pas activés.
Donc tu définit une méthode propre dans le genre :
Avec ce booléen tu sauras si tes champs sont bien remplis avec un point d'exclamation rouge près de ton control (Combobox ,TextBox,etc )
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 private bool VerificationSaisieObligatoire() { // Par défaut , le control est négatif bool bChange = false; string sMessage = Properties.Resources.MessageSaisieObligatoire; if (_AmieAdresseLivraison != null && _AmieAdresseLivraison.SelectedIndex < 1) { ErrorProviderCommande.SetError(CmbAdresseLivraison, sMessage); } else { bChange = true; } return bChange; }
![]()
Partager