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

C# Discussion :

Vérification instantannée dans une TextBox [Débutant]


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2010
    Messages : 129
    Par défaut Vérification instantannée dans une TextBox
    Bonsoir,

    J'ai une textbox dans laquelle on saisit un nombre entre 1 et 9.
    J'aimerai que quand on quitte la TextBox, j'informe l'utilisateur si c'est bon ou pas. Donc sans passer par un bouton de validation classique.

    Enfin je ne sais pas si ça peut le faire

  2. #2
    Membre confirmé
    Inscrit en
    Novembre 2010
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 176
    Par défaut
    en utilisant un NumericUpDown au lieu d'un TexBox, tu pourrais mieux contrôler les entrées de l'utilisateur.
    qu'en penses-tu ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2010
    Messages : 129
    Par défaut
    Citation Envoyé par tallent_e Voir le message
    en utilisant un NumericUpDown au lieu d'un TexBox, tu pourrais mieux contrôler les entrées de l'utilisateur.
    qu'en penses-tu ?
    Oui j'ai déjà utilisé les NumericUpDown .
    Mais j'aimerai bien réussir à faire la vérification instantanée des saisies, c'est utilisé dans plein d'autres logiciels de nos jours.

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2009
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2009
    Messages : 317
    Par défaut
    Tu peux le gérer via l'évenement Leave de la Textbox.

    Ou alors si tu ne dois encoder qu'un chiffre excepté le 0, tu peux aussi le faire lors de l'entrée utilisateur via l'évènement KeyPress et en mettant 1 à la propriété MaxLenght de ta textbox (il ne reste plus qu'alors à vérifier que le caractère encodé est un chiffre et est différent de 0)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2010
    Messages : 129
    Par défaut
    Citation Envoyé par Aeronia Voir le message
    Tu peux le gérer via l'évenement Leave de la Textbox.

    Ou alors si tu ne dois encoder qu'un chiffre excepté le 0, tu peux aussi le faire lors de l'entrée utilisateur via l'évènement KeyPress et en mettant 1 à la propriété MaxLenght de ta textbox (il ne reste plus qu'alors à vérifier que le caractère encodé est un chiffre et est différent de 0)
    Merci beaucoup, c'est intéressant l’événement Leave !

    Le problème maintenant c'est que je génère plusieurs TextBox (dans un tableau de deux dimensions de TextBox).
    Comment je fais pour tester une textbox, par exemple : TabTextBox[2, 3] ?

    Dans ma classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    private System.Windows.Forms.TextBox[,] TextBoxMatrice = new System.Windows.Forms.TextBox[9, 9];
     
    this.TextBoxMatrice[i, j].Leave += new System.EventHandler(this.textBox_Leave);
     
    private void textBox_Leave(object sender, System.EventArgs e)
    {
        //Ici je mets quoi pour tester TabTextBox[i j]  ??          
    }

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2009
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2009
    Messages : 317
    Par défaut
    Il te suffit de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private void textBox_Leave(object sender, System.EventArgs e)
    {
        TextBox  textBox = (TextBox)sender;
           //Ton test avec textBox 
    }

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2010
    Messages : 129
    Par défaut
    Citation Envoyé par Aeronia Voir le message
    Il te suffit de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private void textBox_Leave(object sender, System.EventArgs e)
    {
        TextBox  textBox = (TextBox)sender;
           //Ton test avec textBox 
    }
    Merci bien, ça a marché !

    Pour les gens qui ont le même type de programme :
    -On peut comparer la valeur saisie dans la textBox avec celle qui est présente dans notre Matrice (tableaux 2dimensions), en plaçant ceci quand on crée notre textbox la première fois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.TextBoxMatrice[i, j].Name = (i + "," + j) as String;
    Donc via le "Name", on sait les indices et on pourra les exploiter au besoin.

  8. #8
    Membre émérite Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Par défaut
    Citation Envoyé par seanbean Voir le message
    this.TextBoxMatrice[i, j].Name = (i + "," + j) as String;
    [/code]

    Donc via le "Name", on sait les indices et on pourra les exploiter au besoin.
    Salut,
    Il faut éviter de donner des noms de contrôles contenant des caractères "non valides".
    Je met des guillemets, parce que oui, ce code fonctionne et donc oui les caractères sont considérés comme valides à l'exécution.
    Cependant, il existe beaucoup de choses qui peuvent utiliser cette propriétés Name et échoueront lamentablement si la valeur ne respecte pas une règle simple : considérer que le nom d'un contrôle répond aux mêmes règles de le nom d'une variable :
    - Pas de ponctuation/accent/caractères spéciaux
    - Pas d'espace/tabulation/retour à la ligne
    - Commence par une lettre (et non un chiffre)
    - Le underscore ('_') est autorisé

    Pourquoi ? Parce que si vous faite un Designer à la visual studio, la propriété Name sera le nom de la variable pour y accéder dans le code généré. De même, si vous faites de la sérialisation (xml par exemple), la propriété Name pourra être enregistrée et selon la façon dont elle est utilisée, elle pourra casser le résultat. Etc...
    Il existe beaucoup de chose qui se basera tentera d'utiliser le nom du contrôle, donc il faut prendre garde à ne pas y mettre n'importe quoi.
    Si vous voulez embarquer une donnée supplémentaire dans un contrôle, la propriété Tag est faite pour ça, typée object vous pouvez y placer n'importe quoi.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2010
    Messages : 129
    Par défaut
    Citation Envoyé par ctxnop Voir le message
    Salut,
    Il faut éviter de donner des noms de contrôles contenant des caractères "non valides".
    Je met des guillemets, parce que oui, ce code fonctionne et donc oui les caractères sont considérés comme valides à l'exécution.
    Cependant, il existe beaucoup de choses qui peuvent utiliser cette propriétés Name et échoueront lamentablement si la valeur ne respecte pas une règle simple : considérer que le nom d'un contrôle répond aux mêmes règles de le nom d'une variable :
    - Pas de ponctuation/accent/caractères spéciaux
    - Pas d'espace/tabulation/retour à la ligne
    - Commence par une lettre (et non un chiffre)
    - Le underscore ('_') est autorisé

    Pourquoi ? Parce que si vous faite un Designer à la visual studio, la propriété Name sera le nom de la variable pour y accéder dans le code généré. De même, si vous faites de la sérialisation (xml par exemple), la propriété Name pourra être enregistrée et selon la façon dont elle est utilisée, elle pourra casser le résultat. Etc...
    Il existe beaucoup de chose qui se basera tentera d'utiliser le nom du contrôle, donc il faut prendre garde à ne pas y mettre n'importe quoi.
    Si vous voulez embarquer une donnée supplémentaire dans un contrôle, la propriété Tag est faite pour ça, typée object vous pouvez y placer n'importe quoi.
    J'ignorai totalement toutes ces informations.
    Je vous remercie beaucoup, je prendrai ces bonnes habitudes de programmation en C#, j'appliquerai cela avec rigueur.

    Merci encore pour ce cours

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/06/2007, 14h11
  2. Affichage dans une textbox
    Par philo71 dans le forum MFC
    Réponses: 25
    Dernier message: 30/01/2006, 09h34
  3. [Javascript] appui sur la touche entrée dans une textbox
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 02/01/2006, 11h19
  4. Mettre une date par defaut dans une textBox.
    Par yaumme dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 01/12/2005, 22h39
  5. [c#]Gros text à afficher dans une textbox
    Par famemaur dans le forum ASP.NET
    Réponses: 3
    Dernier message: 04/05/2005, 10h12

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