Test de numéricité décimale sur textbox [Résolu]

Messages postés
205
Date d'inscription
dimanche 13 décembre 2009
Dernière intervention
1 avril 2012
- - Dernière réponse : Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 31 janv. 2011 à 12:19
Salut tout le monde !!
Je suis nouveau..;
Je suis entrain de creer une app en VB 2005 Express. Et je dois utiliser une textbox. Mais je voudrais un code qui puisse défendre l'utilisateur d'entré des lettres. J'en ai un qui fait appel à Keypress et KeyDown sauf qu'il n'autorise pas non plus le "."ou "," alors qu'il s'agit d'entré un nombre décimal !!
Quelqu'un pourrait m'aider ?

extrait de mon code :
Private Sub textbox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles textbox1.KeyDown If (e.KeyCode >= Keys.NumPad0 And e.KeyCode <= Keys.NumPad9) Or e.KeyCode = Keys.Back Then Exit Sub Else testnum = True End If End Sub
Private Sub textbox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles textbox1.KeyPress If testnum True Then e.Handled True testnum = False End If End Sub
Afficher la suite 

Votre réponse

13 réponses

Meilleure réponse
Messages postés
205
Date d'inscription
dimanche 13 décembre 2009
Dernière intervention
1 avril 2012
1
3
Merci
Une autre alternative, en reprenant le code et ajouter :
f (e.KeyCode >= Keys.NumPad0 And e.KeyCode <= Keys.NumPad9) Or e.KeyCode = Keys.Back 'or E.KeyCode=Keys.coma or E.KeyCode=Keys.Decimal

Pour personnalisé encore plus :
MSDN

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_lilj
Messages postés
3247
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
26 décembre 2018
51
3
Merci
salut
il faut penser aussi au clippoard
peut etre comme ça
 
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
        If (e.KeyData >= Keys.D0 And e.KeyData <= Keys.D9) Or (e.KeyData >= Keys.NumPad0 And e.KeyData <= Keys.NumPad9) Or e.KeyData = Keys.Back Or e.KeyData = Keys.Delete Or e.KeyData = Keys.Decimal Then
            sender.readonly = False
        Else
            sender.readonly = True
        End If
    End Sub

    
    
    Private Sub TextBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseUp
        Try
            Double.Parse(sender.text)
        Catch ex As Exception
             sender.text = ""
        End Try


le problème je n'ai pas le Keys.Decimal
certains pays on le . ou ,

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_ShayW
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
61
0
Merci
laisse saisir tout ce que l'utilisateur veux.

lors de la perte de focus du textbox, là, vérifie ce qui a été saisi

Single.TryParse me semble

ainsi, pas de gène a la saisie, et c'est efficace malgré tout


Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
205
Date d'inscription
dimanche 13 décembre 2009
Dernière intervention
1 avril 2012
1
0
Merci
Merci mais serait-il possible de me détaillé un peu plus le code stp parce je suis novice..
Commenter la réponse de cs_lilj
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
61
0
Merci
prend alors tout de suite le reflex de lire la doc...

http://msdn.microsoft.com/fr-fr/library/system.single.tryparse.aspx

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
205
Date d'inscription
dimanche 13 décembre 2009
Dernière intervention
1 avril 2012
1
0
Merci
je vais voir ca merci.
Commenter la réponse de cs_lilj
Messages postés
205
Date d'inscription
dimanche 13 décembre 2009
Dernière intervention
1 avril 2012
1
0
Merci
Bonjour merci pour ta reponse qu'entend tu par clipboard ? Stp
Commenter la réponse de cs_lilj
Messages postés
3247
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
26 décembre 2018
51
0
Merci
presse papiers
Commenter la réponse de cs_ShayW
Messages postés
205
Date d'inscription
dimanche 13 décembre 2009
Dernière intervention
1 avril 2012
1
0
Merci
D'accord, donc tu fais en sorte que la textbox reçoive tout de même ce que contient le presse papier ?
Commenter la réponse de cs_lilj
Messages postés
3247
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
26 décembre 2018
51
0
Merci
ben oui
et je verifie si c'est un nombre si non je force
le textbox = ""
Commenter la réponse de cs_ShayW
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
61
0
Merci
Pas fan du controle a la saisie...

Trop intrusif...
plus simple de controler la saisie une fois le focus rendu

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Commenter la réponse de Renfield
Messages postés
205
Date d'inscription
dimanche 13 décembre 2009
Dernière intervention
1 avril 2012
1
0
Merci
c'est vrai Renfield, cependant, étant étudiant, on ne cesse de nous harcelé en nous rabâchant que pour une question d'ergonomie et de "sécurité", il était mieux d'empêcher l'utilisateur d'entré n'importe quoi plutôt que de tenté de réparer son erreur (c'est-à-dire après la saisie).
Mais bien sûr les opinions divergent à ce sujet ^^
Commenter la réponse de cs_lilj
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
61
0
Merci
clipboard, glisser-deposer, etc...
y'a tant de manières d'entrer du texte...

si on va par la, gérer le WM_SETTEXT tant qu'on y est

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Commenter la réponse de Renfield

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.