IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Validation d'une entrée dans un Textbox


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2008
    Messages : 16
    Par défaut Validation d'une entrée dans un Textbox
    Bonjour à tous,

    j'ai une fenêtre très simple avec un Textbox et un Button. Et dans le Textbox, l'utilisateur tape son code postal et lorsque qu'il appuie sur le Button, sa analyse le Textbox pour vérifier si c'est bien un code postal valide. Qu'est-ce que je dois écrire dans le code du Button lorsqu'il est cliqué?

    Merci!

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Tout dépend de comment tu veux faire la validation.

    En prenant la solution de base super simple, donc en regardant juste la taille (5 caractères) et s'il s'agit uniquement de chiffres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    string codePostal = "12345";
    ...
    int code;
    if (codePostal.Length == 5 && int.TryParse(codePostal, out code) && code > 0)
    {
        // code postal OK
    }
    Le code postal n'est pas forcément valide, mais ça limite les risques tout de même.

    Tu peux aussi utiliser une expression régulière.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    string codePostal = "12345";
    ...
    int code;
    if (Regex.IsMatch(codePostal, @"^(0[1-9]|[1-9][0-9])[0-9]{3}$"))
    {
        // code postal OK
    }
    Avec cette solution, on peut effectuer une validation plus poussée qu'avec la première méthode.

    Après, si tu disposes d'une source de données avec une liste de code postaux, tu confrontes la valeur saisie avec ta source de données.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2008
    Messages : 16
    Par défaut
    Merci, c'est ce que je cherchais

    Mais je ne comprend pas cette partie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int.TryParse(codePostal, out code) && code > 0
    Quelqu'un peut m'expliquer ce que cela signifie svp?

  4. #4
    Membre confirmé Avatar de Roach-
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2004
    Messages : 135
    Par défaut
    Ca convertie ton string en int.

    http://msdn.microsoft.com/en-us/library/f02979c7.aspx

    et ensuite il s'assure que l'integer est plus grand que 0, si le résultat comprend un caractère autre que numérique le code postal est non valide.

    TryParse ne lève pas d'exception si la convertion échoue

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2008
    Messages : 16
    Par défaut
    Mais pourquoi je dois le convertir en "int" ?

    Et sa sert a quoi le "out" ?

  6. #6
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Citation Envoyé par apokalypse Voir le message
    Mais pourquoi je dois le convertir en "int" ?
    Parce que le code postal est un entier, tout simplement. Si on arrive à convertir la chaîne en un entier, alors la saisie est bien partie.

    Citation Envoyé par apokalypse Voir le message
    Et sa sert a quoi le "out" ?
    Regarde la MSDN. C'est le genre de question qui trouve sa réponse avec google si on y met un peu du sien

    Et n'oublie pas de cliquer sur à la fin

Discussions similaires

  1. Réponses: 21
    Dernier message: 25/11/2014, 11h18
  2. Placer une valeur dans un textbox
    Par ThunderBib dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/05/2006, 22h34
  3. JSP : Suppression d'une entrée dans un tableau html
    Par ze veritable farf dans le forum Servlets/JSP
    Réponses: 34
    Dernier message: 11/04/2006, 16h17
  4. [MySQL] Suppresion d'une entrée dans une base de donnée.
    Par bullrot dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 03/03/2006, 19h33
  5. [Débutant] Listener pour une entrée dans le presse papier.
    Par Silvio02 dans le forum Général Java
    Réponses: 6
    Dernier message: 08/01/2006, 22h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo