Eliminer les Lettres dans les textbox [Résolu]

Signaler
Messages postés
153
Date d'inscription
dimanche 4 mars 2007
Statut
Membre
Dernière intervention
24 avril 2011
-
Messages postés
153
Date d'inscription
dimanche 4 mars 2007
Statut
Membre
Dernière intervention
24 avril 2011
-
Bonsoir, j'aimerais éliminer les lettres dans mes textbox pour éviter que cela affiche un méssage d'érreur lorsque l'on tappe une lettre dans une textbox qui ne doit accepter que les chiffres...

En gros je voudrais que lorsque je tappe une lettre dans la textbox cela la suprime directement puis j'afficherais un message disant de ne pas tapper des lettres.

Voila merci d'avance :)

6 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
On t'a déjà répon du pour la virgule, il faut faire pareil pour les chiffres.

Dans l'évènement KeyPress du textbox tu met ceci pour filtrer toutes les lettres

        If Char.IsLetter(e.KeyChar) Then e.Handled = True

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
103
Date d'inscription
lundi 23 avril 2007
Statut
Membre
Dernière intervention
20 octobre 2012

il faut que tu utilise l'evenement change de ton textbox je pense
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
salut,

pourquoi mettre un message?

http://www.codyx.org/snippet_autoriser-saisie-chiffres-dans-champ-texte_119.aspx#340

http://www.codyx.org/snippet_textbox-numerique-seulement_53.aspx

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
153
Date d'inscription
dimanche 4 mars 2007
Statut
Membre
Dernière intervention
24 avril 2011
1
PCPT, les deux liens que tu m'as donné ne sont pas pour VB2005 ou VB.NET.

Et est ce que il éxiste un substitu de keyAscii en vb2005 ?
Messages postés
140
Date d'inscription
mardi 25 novembre 2003
Statut
Membre
Dernière intervention
1 novembre 2010
5
Bonjour,
Si tes textbox ne doivent accepter que des chiffres, le code suivant fonctionne bien.
(Par contre si elles doivent accepter aussi des séparateurs décimaux, c'est plus compliqué.)

Tu peux déjà attribuer un tag identique à tous les textbox concernées, afin de les différencier des autres, puis les abonner à l'événement « KeyPress » dans ton form_load :

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles Me.Load
'*** Pour chaque textBox du formulaire, ayant un tag = tbNbre
' - on demande un alignement à droite
' - on lui associe une routine à chaque pression sur une touche du
' clavier.
Dim txtbox As Control
For Each txtbox In Me.Controls
If TypeOf (txtbox) Is TextBox And txtbox.Tag Is ("tbNbre") Then
'*** "TextAlign" n'étant pas un membre de "Control", il faut
' redéfinir à ce stade, "TextBox" comme un textBox.
Dim txt As TextBox = CType(txtbox, TextBox)
txt.TextAlign = HorizontalAlignment.Right
AddHandler txtbox.KeyPress, AddressOf tbKpress_KeyPress
End If
Next
End Sub

Puis le traitement de l'événement :

Private Sub tbKpress_KeyPress(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs)

If Char.IsNumber(e.KeyChar) = False Then
e.KeyChar = CChar("")
MessageBox.Show("Entrez un nombre")
End If
End Sub
Messages postés
153
Date d'inscription
dimanche 4 mars 2007
Statut
Membre
Dernière intervention
24 avril 2011
1
Ok merci, et dsl je n'y arrivais pas tout seul ... Mais maintenant c'est bon :)