Textbox acceptant uniquement des nombres [Résolu]

Signaler
Messages postés
35
Date d'inscription
dimanche 3 novembre 2013
Statut
Membre
Dernière intervention
27 mai 2014
-
Messages postés
27
Date d'inscription
samedi 7 août 2010
Statut
Membre
Dernière intervention
16 janvier 2014
-
Bonjour,

J'utilise Visual Studio 2010 et j'ai un TextBox1 sur une boite de dialog.
Je voudrais que ce TextBox1 accepte uniquement des nombres.
Si une valeur autre q'un nombre est saisie dans le TextBox1 je voudrais qu'un mesage d'érreur s'affiche comme suit:

MsgBox("Format de nombre invalide").

J'ai éssayé avec le code suivant:
If VarType(TextBox1.Text) = VariantType.Currency Then
MsgBox("format valide")
Else
'Méssage d'érreur
MsgBox("format de nombre invalide")
End If

Mais le méssage d'érreur s'affiche même lorsque je saisie du text ou un nombre dans le TexBox1.

Si quelqu'un peut m'aider ça m'aiderait à avancer.
Merci d'avance à vous!

2 réponses

Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
155
Bonjour,

Retires l'import automatique de l'espace de nom Microsoft.VisualBasic (propriétés du projet -> Références)
MsgBox -> MessageBox.Show

Regardes aussi ma signature.

Concernant le test de validité des nombres : Double.TryParse par exemple, fonctionne avec tout les types de bases (Integer, Byte, ...)
Messages postés
35
Date d'inscription
dimanche 3 novembre 2013
Statut
Membre
Dernière intervention
27 mai 2014

Merci NHenry
j'ai également essayé ceci qui marche parfaitement.

If Not IsNumeric(TextBox7.Text) Then
MsgBox("format de nombre invalide")
Else
MsgBox("format valide")
End If
Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
155
Oui, C'est bien "Microsoft.VisualBasic", IsNumeric est une des fonctions qui ne sont plus conseillées, car trop rigide et héritées de VB6, utilises plutôt TryParse qui est largement plus souple.
Messages postés
35
Date d'inscription
dimanche 3 novembre 2013
Statut
Membre
Dernière intervention
27 mai 2014

Merci beaucoup pour les conseils NHenry
j'ai retiré Microsoft.VisualBasic de l'espace de noms importés et j'ai remplacé MsgBox par MessageBox.Show

Maintenant est ce que c'est ce que je dois écrire pour le test de validité:
If VarType(TextBox1.Text) = VariantType.Double.TryParse Then
MessageBox.Show("format valide")
Else
'Méssage d'érreur
MessageBox.Show("format de nombre invalide")
End If
Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
155
Non
Double.TryParse(...)
Renseignes-toi dessus (touche F1)
Messages postés
35
Date d'inscription
dimanche 3 novembre 2013
Statut
Membre
Dernière intervention
27 mai 2014

Bonsoir NHenry
Grace à vos conseils j'ai pu trouver une solution à ma préoccupation. j'ai éssayé avec la méthode Double.TryParse qui marche parfaitement. Voici le code final que j'obtiens:

Dim value as Double
If Double.TryParse(TextBox1.Text , Value) then
MessageBox.Show("format valide")
Else
MessageBox.Show("format de nombre invalide")
End if

Merci infiniment pour vos conseils et merci égalment à tous les membres du forum.
Messages postés
27
Date d'inscription
samedi 7 août 2010
Statut
Membre
Dernière intervention
16 janvier 2014
1
Bonjour ,
Au lieu d'une TextBox , pourquoi ne pas utiliser une MaskedTextBox ?
http://msdn.microsoft.com/fr-fr/library/system.windows.forms.maskedtextbox(v=vs.110).aspx
le format à utiliser peut être defini par la propriété Mask
http://msdn.microsoft.com/fr-fr/library/system.windows.forms.maskedtextbox.mask(v=vs.110).aspx
Attention , le masque doit respecter la syntaxe américaine ( . devant la partie décimale et , pour séparer les milliers,millions,...)
Bonne journée