Textbox acceptant uniquement des nombres

Résolu
strafor Messages postés 35 Date d'inscription dimanche 3 novembre 2013 Statut Membre Dernière intervention 27 mai 2014 - 24 nov. 2013 à 16:00
PapyNormand Messages postés 27 Date d'inscription samedi 7 août 2010 Statut Membre Dernière intervention 16 janvier 2014 - 25 nov. 2013 à 21:58
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

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
24 nov. 2013 à 16:23
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, ...)
0
strafor Messages postés 35 Date d'inscription dimanche 3 novembre 2013 Statut Membre Dernière intervention 27 mai 2014
24 nov. 2013 à 17:34
Bonjour NHenry
Est ce que c'est ceci " Microsoft.VisualBasic" que je dois retirer de l'espace de noms importés?

merci d'avance de l'importance que vous accordiez à ma préoccupation.
0
strafor Messages postés 35 Date d'inscription dimanche 3 novembre 2013 Statut Membre Dernière intervention 27 mai 2014
24 nov. 2013 à 17:43
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
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
24 nov. 2013 à 17:45
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.
0
strafor Messages postés 35 Date d'inscription dimanche 3 novembre 2013 Statut Membre Dernière intervention 27 mai 2014
Modifié par strafor le 24/11/2013 à 19:17
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
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
24 nov. 2013 à 19:25
Non
Double.TryParse(...)
Renseignes-toi dessus (touche F1)
0
PapyNormand Messages postés 27 Date d'inscription samedi 7 août 2010 Statut Membre Dernière intervention 16 janvier 2014 1
25 nov. 2013 à 21:58
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
0
Rejoignez-nous