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

VB.NET Discussion :

Saisie que des chiffres dans un TextBox


Sujet :

VB.NET

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 132
    Points : 43
    Points
    43
    Par défaut Saisie que des chiffres dans un TextBox
    Bonjour

    comment je peux interdire la saisie caractères sauf les chiffres dans 2 contrôles TextBox,le premier pour saisir les entiers et l'autre pour les décimales dont le séparateur est le point(.)

    merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Si t'utilises ASP.Net, alors regarde du côté d'AjaxControlToolkit, avec le FilteredTextBox.

    Si t'utilises WinForm, utilises le contrôle MaskedTextBox.

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 132
    Points : 43
    Points
    43
    Par défaut
    J'utilise WinForm avec le contrôle TextBox,et en mode programmation de son événement KeyPress le programme est le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Not Char.IsDigit(e.KeyChar) Then
                e.Handled = True
            End If
    ce petit programme interdit l'écriture des caractères sauf les chiffres,mais un petit souci est quand je vaudrais effacer un nombre saisi avec la touche de clavier "backspace" ca marche pas.

  4. #4
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Maroc

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Points : 347
    Points
    347
    Par défaut
    des chiffres entiers :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If (Char.IsLetter(e.KeyChar)) Or (Char.IsPunctuation(e.KeyChar)) Then
                e.Handled = True
    End If
    des décimales... dans ce cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If (Char.IsLetter(e.KeyChar)) Then
          e.Handled = True
    End If

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 132
    Points : 43
    Points
    43
    Par défaut
    c'est excellent

    il reste une petite remarque concernant le deuxième programme qui accepte la virgule(,) dans la saisie.

  6. #6
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Maroc

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Points : 347
    Points
    347
    Par défaut
    Non je ne pense pas que c pas possible de l'éviter malheureusement, parce qu'il y a des ordinateurs qui acceptent la virgule comme séparateur décimal (ça dépend de la config dans la paramètres régionaux).

    Tu peux toujours faire des conditions

    ah ajoute ça aussi pour éviter les espaces :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (Char.IsSeparator(e.KeyChar))

  7. #7
    Invité
    Invité(e)
    Par défaut
    Parmi les différentes méthodes fournies ci-dessus cela pourrait marcher si on est que sûr l'utilisateur ne va se tromper et mettre deux fois un séparateur pour un même nombre. Si on ne pas empêcher ce cas d'utilisation alors les masques de saisies sont les bienvenues !!!

  8. #8
    Membre chevronné
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Points : 1 839
    Points
    1 839
    Billets dans le blog
    2
    Par défaut vérification
    Le mieux reste de vérifier par expression règulière ex: [0..9]
    Sur le forum et sur Google tu auras tout ce que tu cherches

  9. #9
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Bien vu pour les expressions régulière, voir cette discussion

    Sinon comme dit dans la dite discussion cité précédemment, utiliser le bon control est parfois bien plus efficace ^^ le NumericUpDown.

    P.S. : Géré l'évènement KeyPress est bien mais il laisse encore passer le CTRL + V qui permet de coller du text, celui-ci ne sera pas filtré et passera ta barrière.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Sankasssss Voir le message
    P.S. : Géré l'évènement KeyPress est bien mais il laisse encore passer le CTRL + V qui permet de coller du text, celui-ci ne sera pas filtré et passera ta barrière.
    Ce qui me pousse à dire que la solution pour une masque de saisie est meilleure.

  11. #11
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Tout à fait
    Ou mieux, du control NumericUpDown qui est spécialement fait pour gérer des chiffre

Discussions similaires

  1. Ne rentrer que des chiffres dans une TextBox
    Par nimois3O dans le forum ASP.NET
    Réponses: 25
    Dernier message: 11/06/2007, 11h44
  2. ne taper que des chiffres dans un Tedit
    Par Lorenzo77 dans le forum Delphi
    Réponses: 5
    Dernier message: 05/07/2006, 13h19
  3. Que des chiffres dans un JTextField
    Par hammag dans le forum Composants
    Réponses: 4
    Dernier message: 15/05/2006, 17h44
  4. [C#] que des Lettres dans la textbox
    Par diaboloche dans le forum Windows Forms
    Réponses: 4
    Dernier message: 07/10/2005, 08h21

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