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 :

Créer une zone de texte qui n'accepte que des nombres


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 212
    Points : 23
    Points
    23
    Par défaut Créer une zone de texte qui n'accepte que des nombres
    bonjour,

    Je voudrais s'il vous plait qu'une zone de texte en VB n'accepte que des valeurs numériques comment je peux faire ça
    voici mon essai mais c'est pas terminé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
            If (Asc(TextBox2.Text) > 57 Or Asc(TextBox2.Text) < 48) And (Asc(TextBox2.Text <> 8)) Then
     
     
     
            End If
     
     
        End Sub
    comment ignorer le caractère entré par l'utilisateur si il ne s'agit pas d'un caractère numérique sachant que le code ascii d'un appui ignoré est 0
    cr

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    il doit y avoir le controle numericupdown qui fait ca mieux que le textbox (les fleches sont retirables, je ne sais pas s'il gère les décimaux)

    sinon c'est sur keypress ou keydown, où il faut faire e.handled = true pour dire qu'on a géré la touche, mais si on ne fait rien d'autre ca revient à l'annuler
    mais c'est plus compliqué que ca de faire un textbox numérique, car il y a aussi les combinaisons genre ctrl+v, ou encore le clic/droit coller à gérer, et là textchanged peut convenir, mais il faut supprimer soit même les caractères interdits et gérer la réentrance dans la méthode
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonjour boutheinanabeul,

    Si tu ne souhaites pas utiliser le contrôle NumericUpDown, saches que nous avons déjà traité ce sujet ici par exemple :
    http://www.developpez.net/forums/d14...s/#post7900583

    A+

  4. #4
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    il doit y avoir le controle numericupdown qui fait ca mieux que le textbox (les fleches sont retirables, je ne sais pas s'il gère les décimaux)
    Il gère parfaitement les nombres décimaux et on peut même préciser jusqu'à quelle précision. Je n'utilise que ça lorsque l'utilisateur doit encoder une valeur numérique.
    Kropernic

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 212
    Points : 23
    Points
    23
    Par défaut
    selon ce que j'ai compris on insère le contrôle NumericUpdown puisque ce contrôle permet d'insérer seulement les nombres et je ne fait aucune vérification pour cela

  6. #6
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Si tu veux absolument un textbox, il y en a quelques uns de tout faits chez Code-Project. Tu dois être (devenir) membre pour les télécharger. Ce sont "du bon monde".

    http://www.codeproject.com/Articles/...umeric-TextBox

    http://www.codeproject.com/Articles/...ontrol-Textbox


    Voici le résultat de ma recherche sur leur site. Ils disent 8 pages, mais je n'ai pas dépassé la première.

    http://www.codeproject.com/search.as...sbo=kw&x=6&y=9
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  7. #7
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 212
    Points : 23
    Points
    23
    Par défaut
    merci pour votre réponse mais c'est pas ça ce que je veux, moi je voudrais un textbox déjà existant dans ma form puis à chaque caractère que j’introduis un caractère un controle est fait est le programme ne permet d'introduire que des nombres et si on tape un autre caractère le programme ne le prend pas en considération. et selon la réponse dans ce forum il existe déjà un contrôle déjà prêt que je pouvais l'utiliser

  8. #8
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Points : 929
    Points
    929
    Par défaut
    Citation Envoyé par boutheinanabeul Voir le message
    merci pour votre réponse mais c'est pas ça ce que je veux, moi je voudrais un textbox déjà existant dans ma form puis à chaque caractère que j’introduis un caractère un controle est fait est le programme ne permet d'introduire que des nombres et si on tape un autre caractère le programme ne le prend pas en considération. et selon la réponse dans ce forum il existe déjà un contrôle déjà prêt que je pouvais l'utiliser
    Bonjour

    En clair

  9. #9
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    A mon avis il faudrait commencer par étudier le Cours VB.NET de Philippe Lasserre, c'est une mine d'information, très bien pour apprendre.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  10. #10
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 212
    Points : 23
    Points
    23
    Par défaut
    moi j'utilise Microsofot Visual Basic 2008 express Edition donc je suis en train d'utiliser VB.NET ou bien VB normal c'est quoi la différence?

  11. #11
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par boutheinanabeul Voir le message
    merci pour votre réponse mais c'est pas ça ce que je veux, moi je voudrais un textbox déjà existant dans ma form puis à chaque caractère que j’introduis un caractère un controle est fait est le programme ne permet d'introduire que des nombres et si on tape un autre caractère le programme ne le prend pas en considération. et selon la réponse dans ce forum il existe déjà un contrôle déjà prêt que je pouvais l'utiliser
    donc ton textbox existant, tu le supprimes, et tu poses un numericupdown, comme ca tu n'as pas de code à taper


    Citation Envoyé par boutheinanabeul Voir le message
    moi j'utilise Microsofot Visual Basic 2008 express Edition donc je suis en train d'utiliser VB.NET ou bien VB normal c'est quoi la différence?
    vb tout court c'est 1998 au mieux, depuis 2002 c'est vb.net



    et au passage lire un cours sur vb.net oui, ca te sera utile
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  12. #12
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 212
    Points : 23
    Points
    23
    Par défaut
    merci pour votre réponse en fait moi j'ai étudié VB en 2007 et c'était VB normal et non pas VB.NET c'est pour cela j'ai trouvé que beaucoup des choses sont changé

  13. #13
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    vb.net on l'appelle des fois vb quand même
    et étudier en 2007 en un langage datant d'avant 1998 ca me parait étrange ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  14. #14
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 212
    Points : 23
    Points
    23
    Par défaut
    bon malgré que VB est depuis 1998 moi j'ai étudié ça en 2007 pourquoi c'est bizarre ? j'ai pas compris et en 1998 j'ai 12 ans donc c'est normal en principe d'étudier ça en 2007

  15. #15
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Tu utilises "Microsoft Visual Basic 2008 express Edition" donc tu utilises le langage "VB.NET" (visual basic .NET).
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  16. #16
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 212
    Points : 23
    Points
    23
    Par défaut
    ok c'est compris et déjà j'ai commencé à lire le cours que vous m'avez indiqué

  17. #17
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par Pol63 Voir le message

    vb tout court c'est 1998 au mieux, depuis 2002 c'est vb.net
    En fait, sauf quelques modifications ponctuelles à VBA, le dernier BASIC non .net de Microsoft, c'est VB6
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  18. #18
    Membre actif
    Homme Profil pro
    Retraité intello
    Inscrit en
    Juillet 2012
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité intello

    Informations forums :
    Inscription : Juillet 2012
    Messages : 186
    Points : 205
    Points
    205
    Par défaut
    Bonjour.

    La fonction TryParse permet d'ignorer tout string qui ne peut représenter un numérique. Il faut toutefois préciser le type du numérique.

    Cordialement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Class Accueil
     
        Private Sub Accueil_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Dim t As String = "", x As Double, Ok As Boolean
            Ok = Double.TryParse("46", x) : MessageBox.Show("x = " & x.ToString & ", " & Ok.ToString)
            Ok = Double.TryParse("AB", x) : MessageBox.Show("x = " & x.ToString & ", " & Ok.ToString)
        End Sub
     
    End Class

  19. #19
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour

    L'histoire de la date de naissance n'est pas une excuse valable si tu es etudiant et ce serait desesperant .
    Suivant ton raisonnement purement "sfaxien ou bizertien" les etudiants nes en 2014 apprendront vb.net 2014 en 2034 à l'age de 20 ans...qui sera certainement depasse par le vb.net 2032...
    Cela s'appelle faire des efforts et travailler pour etre à jour ...
    Bref comme signale par Pol63, il faut gerer 2 events keydown et keypress pour filtrer les touches clavier...
    Si tu utilises vb.net ,voici un code (qui existe deja dans le forum) mache comme de la bouillie (c'est des bananes passees au mixer-blender pour les "sans dents" dirait E.Macron)...d'un simple textbox qui n'accepte que des nombres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    Public Class Form1
        ' Boolean flag utilise pour determiner quand
        'un caractere autre qu'un nbre est saisi.
        Private nonNumberEntered As Boolean = False
        ' Handle the KeyDown event to determine the type of character entered into the control.
     
        Private Sub TextBox1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
            '  flag à false.
            nonNumberEntered = False
     
            ' test si touche presse est hors du pave numerique alphabetique.
            If e.KeyCode < Keys.D0 OrElse e.KeyCode > Keys.D9 Then
                ' si aussi touche est hors du pave numerique(keypad).
                If e.KeyCode < Keys.NumPad0 OrElse e.KeyCode > Keys.NumPad9 Then
                    '  backspace ?
                    If e.KeyCode <> Keys.Back Then
                        ' un caractere non-numerique a ete  presse. 
                        ' flag à  true et continuer le traitement dans KeyPress event.
                        nonNumberEntered = True
                    End If
                End If
            End If
     
        End Sub
        ' Cet survient survient apres KeyDown event  
        ' et permets de prevenir la saisie des caracteres non souhaites
     
        Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
            ' test du flag mis dans KeyDown event.
            If nonNumberEntered = True Then
                ' Stopper caractere saisi c'est un non numerique.
                e.Handled = True
            End If
     
        End Sub
    End Class
    baathli un wav yazitouna ouach habatek lal ouad svp..ou donnes-moi un lien de telecharegement....
    bon code...

  20. #20
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 212
    Points : 23
    Points
    23
    Par défaut
    et donc quand il vont apprendre le VB lorsqu'ils ont un an? et tout cas merci pour la réponse et j'ai déjà trouvé une solution avec les codes ascii

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AC-2003] Créer une zone de texte automatiquement
    Par JUNOZORRR dans le forum VBA Access
    Réponses: 6
    Dernier message: 29/01/2010, 11h07
  2. Créer une zone de texte dynamique de taille donnée
    Par sovitec dans le forum EDI/Outils
    Réponses: 0
    Dernier message: 18/06/2009, 10h39
  3. créer une zone de texte à partir du code
    Par 2ismawan dans le forum C++
    Réponses: 4
    Dernier message: 17/02/2009, 00h47
  4. Une zone de texte qui marche, l'autre pas , pourquoi ?
    Par lap75 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 3
    Dernier message: 06/12/2007, 13h11
  5. Créer une zone de texte de taille défini?
    Par tmk21fr dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/07/2007, 07h04

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