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
14943
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
3 juillet 2022
161
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
14943
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
3 juillet 2022
161
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
14943
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
3 juillet 2022
161
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