Zone de texte de validation
Je suis à l'aide de nombreuses zones de texte dans un formulaire.
Comment puis-je valider,
Dans certaines zones de texte-je utiliser seulement le texte et dans certains-je utiliser uniquement des chiffres.
Est l'aide de l'ASCII est une bonne méthode ou est-il plus facile méthode pour ce faire. Si donc s'il vous plaît laissez-moi savoir le codage.
- .Net ne pas utiliser l'ASCII, il utilise l'Unicode pour les chaînes de caractères.
Vous devez vous connecter pour publier un commentaire.
Wow, cela peut être un sujet très vaste...
Pour les zones de texte, vous devriez probablement de limiter les entrées pendant l'événement KeyPress:
REMARQUE: Cet exemple de code est en supposant que WinForms, approche différente doit être utilisée pour le web...
Indépendamment de la plate-forme, vous devriez regarder dans les contrôles de validation offertes par le cadre, et qui vous permettra de valider qu'il est, en effet, d'entrée, les valeurs sont dans une plage spécifiée, et aussi en utilisant les regex écrire plus compliqué règles de validation.
KeyPress
est toujours une mauvaise idée. Qu'en copiant et collant? La Validation devrait toujours et uniquement se produire dans leValidating
événement.KeyPress
événement est une grave UX faille (lire ma réponse pour plus de détails). La Validation ne devrait pas “en outre” arriver dans laValidating
cas, il devrait arriver que de là.Au-dessus de tous les autres, ne pas gêner l'utilisateur. Si je suis taper du texte et de l'application empêche que (indépendamment de la façon dont il le fait), je suis juste titre énervé.
Il y a plusieurs valeurs pour le gérer:
Utiliser un
NumericUpDown
ou unSlider
contrôle au lieu d'une zone de texte pour les valeurs numériques (en d'autres termes: utiliser le contrôle correct au lieu d'un contrôle à usage général).Permettre à plus ou moins arbitraire d'entrée et de tenter d'analyser la saisie de l'utilisateur d'une manière significative. Par exemple, en tapant “
+33 (0) 6 12-34-56
” est tout à fait significatif pour le format d'un numéro de téléphone en France. Une application doit permettre que, et d'essayer de l'analyser correctement.Accordée, ce qui est le plus difficile, mais il fournit la meilleure expérience utilisateur.
Utiliser le
Valider
événement pour valider la saisie. Ceci est automatiquement déclenchée à chaque fois que l'utilisateur feuilles le contrôle d'entrée, c'est à dire quand ils ont fini leur entrée, et une validation de ne pas gêner l'utilisateur.La documentation MSDN de l'événement, donne un exemple de la façon dont cet événement est utilisé correctement.
Mais ne pas utiliser le
KeyPress
ouTextChanged
événements de validation. La première va déranger les utilisateurs lors de la saisie de texte. La deuxième aussi ennuyer quand ils essaient de coller du texte à partir de quelque part d'autre. Imaginez le suivant: je suis en train de copier un numéro à partir d'un site web. Malheureusement, le texte que j'ai copié comprend aussi autre chose, par exemple “eggs: 14.33 EUR
” au lieu de “14.33
”.Maintenant, l'application doit me donner la chance de les coller et de les corriger le texte. Si je ne suis pas autorisé à le faire, l'application est un UX d'échec. Si l'application utilise la
TextChanged
événement pour prévenir ma coller ce texte, je n'ai pas la chance de supprimer le texte incriminé.Texte seulement limité à 40 caractères:
Uniquement Des Nombres:
Le moyen le plus rapide pour validation à l'aide d'expressions régulières. Ils sont plus difficiles à comprendre, mais offrent de meilleures performances.
Mais vous pourriez le faire aussi à l'aide de fonctions de chaînes de caractères. Ce qui est plus facile si vous ne savez pas regex mais est moins performant. Ce pourrait être une option viable, en fonction de la dureté de la validation.
Ici et ici sont des messages qui vous aidera avec des exemples de code.
Convenu que les Expressions Régulières peuvent être plus rapides, mais ... eh bien, voici comment je l'ai fait. Fondamentalement, ce code est pour un UserControl qui contient une étiquette, une zone de texte, et une erreur du fournisseur. Il dispose également de divers autres propriétés, mais ici, c'est le bit qui traite de la validation.
Je ne l'utiliser sur l'événement TextChanged, parce que je ne veux pas que l'utilisateur de continuer à taper si c'est un caractère non valide; la vérification des règles de "mange" le caractère non valide.
il suffit d'aller à l'événement keyup de la zone de texte et entrez le code suivant
100%, il travail
je voudrais partager ma zone de texte du programme de validation..