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 :

Fonction pour autoriser seulement les nombres dans textbox


Sujet :

VB.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 218
    Points : 111
    Points
    111
    Par défaut Fonction pour autoriser seulement les nombres dans textbox
    Bonjour, grace au forum j'ai pu trouver ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub txt_ip_3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) _
    Handles txt_ip_3.KeyPress
     
    If Not Char.IsDigit(e.KeyChar) Then
    ' Tous les caractères non numériques ne sont pas traités sur le TextBox.
    e.Handled = True
    End If
     
    End Sub
    Etant donné que j'ai beaucoup de txt box a controler, je souhaiterais savoir comment réaliser une fonction générique qui permettrait de faire ce contrôle, (si c'est possible)

    Merci

  2. #2
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 682
    Points : 1 952
    Points
    1 952
    Par défaut
    Tu rajoutes autant de controle (à controler) dans le handle de la fonction.

  3. #3
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut
    Tu peut créer ta fonction dans un module et appeler juste dans l'évènement keypres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public sub ControleTextBox(byref e as System.Windows.Forms.KeyPressEventArgs)
    If Not Char.IsDigit(e.KeyChar) Then
    ' Tous les caractères non numériques ne sont pas traités sur le TextBox.
    e.Handled = True
    End If
    end sub

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 218
    Points : 111
    Points
    111
    Par défaut
    merci de votre aide

    peut tu donner un exemple de l'appel du module dans le keypress stp? je crains de ne pas savoir faire.

    Merci beaucoup.

  5. #5
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut
    peut tu donner un exemple de l'appel du module dans le keypress stp? je crains de ne pas savoir faire.
    Tu veut dire l'appel de la fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub txt_ip_3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txt_ip_3.KeyPress
    ControleTextBox(e)
    End Sub

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 218
    Points : 111
    Points
    111
    Par défaut
    merci :p

  7. #7
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut
    sa arrive si ton problème est résolue n'oublie de mètre sur la discussion.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 218
    Points : 111
    Points
    111
    Par défaut
    2 petites questions et après c'est la fin promis : lors de l'appel de la fonction, on lui passe le paramètre (e),mais si je renomme celle ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ControleTextBox(textOnly)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public sub ControleTextBox(byref textOnly as System.Windows.Forms.KeyPressEventArgs)
    If Not Char.IsDigit(textOnly.KeyChar) Then
    ' Tous les caractères non numériques ne sont pas traités sur le TextBox.
    textOnly.Handled = True
    End If
    end sub


    cela ne marche plus alors que sans rien modifier tout était ok. Est ce que "e" faisait référence a qq chose en particulier ?


    2) je suis tout content de mon contrôle mais le soucis c'est que si l'utilisateur se plante dans sa saisi des nombres, il ne peut plus faire retour arrière pour supprimer le chiffre.... ='(. J'imagine qu'il faut ajouter une exeption pour la touche supprimer mais laquelle =O

    Merci.

  9. #9
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut
    Citation Envoyé par anxious Voir le message
    2 petites questions et après c'est la fin promis : lors de l'appel de la fonction, on lui passe le paramètre (e),mais si je renomme celle ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ControleTextBox(textOnly)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public sub ControleTextBox(byref textOnly as System.Windows.Forms.KeyPressEventArgs)
    If Not Char.IsDigit(textOnly.KeyChar) Then
    ' Tous les caractères non numériques ne sont pas traités sur le TextBox.
    textOnly.Handled = True
    End If
    end sub


    cela ne marche plus alors que sans rien modifier tout était ok. Est ce que "e" faisait référence a qq chose en particulier ?
    C'est normal que sa ne marche pas au niveau de l'appel de la fonction tu doit passer e en paramètre et non textOnly.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ControleTextBox(e)
    Citation Envoyé par anxious Voir le message
    je suis tout content de mon contrôle mais le soucis c'est que si l'utilisateur se plante dans sa saisi des nombres, il ne peut plus faire retour arrière pour supprimer le chiffre.... ='(. J'imagine qu'il faut ajouter une exeption pour la touche supprimer mais laquelle
    En fait ta fonction de contrôle bloque le clavier alphabétique et le touche supprimer fait partir de ces touches.
    Une solution serais d'utiliser les codes Asci.

    @++

  10. #10
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    Je fais comme ca moi :

    Sur le KeyPress de la textbox, je mets le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If InStr("0123456789", e.KeyChar) = 0 And e.KeyChar <> vbBack Then
                e.Handled = True
    End If
    Je ne sais pas si c'est tres propre mais c'est la technique que j'utilise qui fonctionne tres bien !!!

    J'espère que ca t'aidera.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 218
    Points : 111
    Points
    111
    Par défaut
    merci

  12. #12
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    De rien !!!
    Nous sommes la pour nous entraider !!!
    C'est ca la magie du Net !!!

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour, et bonne année à vous tous.
    Je voulais juste préciser, par rapport au dernier post que vous pouvioez faire tout simplement ceci ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ' Numériques sinon ne tient pas compte de l'action (évite de tout gérer sur le Handles MyBase.TextChanged)
            If Not Char.IsDigit(e.KeyChar) And Not e.KeyChar = vbBack Then e.Handled = True
            ' une seule ponctuation
            If Char.IsPunctuation(e.KeyChar) And InStr(Text, DecimalSeparator) > 0 Then e.Handled = True
    Cordialement

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 19/07/2014, 13h50
  2. Autoriser seulement du numérique dans plusieurs textbox
    Par Coco39 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/03/2013, 09h07
  3. n'autoriser que les chiffres dans textbox
    Par keithsize dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 06/06/2009, 12h45
  4. Réponses: 1
    Dernier message: 20/10/2006, 21h57
  5. autoriser que les chiffres dans un champ
    Par ph_anrys dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 31/08/2006, 16h17

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