Que des nombres dans un TextBox

nememoris Messages postés 25 Date d'inscription mardi 21 février 2006 Statut Membre Dernière intervention 1 août 2007 - 1 août 2007 à 00:44
nememoris Messages postés 25 Date d'inscription mardi 21 février 2006 Statut Membre Dernière intervention 1 août 2007 - 1 août 2007 à 11:50
Bonjour

Je souhaiterais savoir s il est possible et comment limiter la saisie des seuls nombres dans un textbox.
J ai decidé de commencer par la réalisation d une calculatrice ( il faut bien un debut et rassurez vous je ne mettrais pas mon code en ligne ;-) ) et me trouve confronté au pb suivant
Ma fonction multiplier par exemple :
   dim a,b,c as integer
   a=integer.parse(textbox1)
   b=integer.parse(textbox2)
   c=a*b
   textbox3.text=c

Si le contenu de textbox1 et de textbox2 est un nombre pas de pb mais si il a été saisi une lettre, ça declenche une exception format.
Je pensais que a=integer.parse(textbox1) suffisait et renvoyait comme valeur 0 si il ne s agisait pas d un nombre...
comment y remedier ?
Merci de votre aide

6 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
1 août 2007 à 08:17
Salut,
utilise l'événement Key_Down ou Key_Press de tes textbox pour y verifier la touche tapée et l'annuler si ce n'est pas un chiffre ou un caractere autorisé (et oui attention à l'Hexa ou a l'exposant)

Ensuite cette facon de procéder est simple à mettre en place mais ne te protège pas du copie coller

@+: Ju£i?n
Pensez: Réponse acceptée
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
1 août 2007 à 08:30
SetWindowLong sur ta TextBox avec ES_NUMBER ajouté comme GWL_STYLE
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
1 août 2007 à 08:43
Suffit pour empêcher le 'coller' ?

ciao...
BruNews, MVP VC++
0
nememoris Messages postés 25 Date d'inscription mardi 21 février 2006 Statut Membre Dernière intervention 1 août 2007
1 août 2007 à 11:40
Merci mais j y arrive pas...
J avais tout de meme recherché avant sur le forum et voulais gerer l evenement Key_press. J ai donc recopié ce code fort simple mais cela ne produit aucun effet

Private Sub TextBox1_KeyPress(KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 57 Then
MsgBox "Uniquement les numériques", vbInformation, "Erreur"
KeyAscii = 0
End If
End Sub

mais quand je veux gerer l evenement keypress depuis le gestionnaire d evenement dela me cree la sub suivante :
Private
Sub TextBox1_KeyPress(
ByVal sender
As System.Object,
ByVal e
As System.Windows.Forms.KeyPressEventArgs)
Handles TextBox1.KeyPress







et je suis perdu..

 ( j ai installé vb2005 express il y a peu et attends un bouquin mais voulais commencer avant )...

merci pour votre aide et votre patience

ps : je souhaite aussi gerer le coller mais j ai vu qu il suffisait de teste le code ascii 22....au moins ça doit etre correct !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
1 août 2007 à 11:48
Salut,
Essaie ceci:

   Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress

       If Not IsNumeric(e.KeyChar) Then e.KeyChar = String.Empty

   End Sub , ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
0
nememoris Messages postés 25 Date d'inscription mardi 21 février 2006 Statut Membre Dernière intervention 1 août 2007
1 août 2007 à 11:50
merci juste une derniere petite precision, comment tester s il s agit d un point pour l accepter ?
0
Rejoignez-nous