LIMITER LA SAISIE À CERTAINS CARACTÈRES/TOUCHES DANS UN TEXTBOX EN VB.NET
cs_Falk
Messages postés31Date d'inscriptiondimanche 16 mars 2003StatutMembreDernière intervention19 avril 2003
-
13 avril 2003 à 21:20
blq
Messages postés97Date d'inscriptionvendredi 22 octobre 1999StatutMembreDernière intervention13 juin 2016
-
17 févr. 2012 à 21:47
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
blq
Messages postés97Date d'inscriptionvendredi 22 octobre 1999StatutMembreDernière intervention13 juin 20161 17 févr. 2012 à 21:47
Tester avec VB 2010. Simple et efficace. Merci !
Pour compléter et pour ceux souhaitant traiter plusieurs champs en même temps sans dupliquer le code, il suffit de faire ainsi (pour le premier exemple mais c'est pareil pour les autres test en exemple) :
Private Sub CheckDigit(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress, TextBox2.KeyPress, TextBox3.KeyPress If Char.IsDigit(e.KeyChar) False And Asc(e.KeyChar) <> System.Windows.Forms.Keys.Back Then e.Handled True
End Sub
Le label CheckDigit n'est pas la désignation d'un TextBox, mais un label de votre choix (vous pouvez mettre Toto :-)), c'est l'ajout des TextBox avec leur Event qui permet de regrouper en une seule fonction le traitement pour tous les TextBox ajoutés.
B Xeon Otman
Messages postés6Date d'inscriptionsamedi 7 juillet 2007StatutMembreDernière intervention27 septembre 2009 11 août 2010 à 14:10
Salut, je veux juste ajouter quelques chose sur la fonction "majuscules_KeyPress" :
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Dim pos As Integer = TextBox1.SelectionStart
If Char.IsUpper(e.KeyChar) = False And Asc(e.KeyChar) <> System.Windows.Forms.Keys.Back Then
e.Handled = True
If Char.IsLetter(e.KeyChar) Then
TextBox1.Text = TextBox1.Text.Insert(pos, e.KeyChar.ToString.ToUpper)
TextBox1.SelectionStart = pos + 1
End If
End If
End Sub
arapahoo
Messages postés26Date d'inscriptionlundi 15 mai 2006StatutMembreDernière intervention11 juillet 2008 18 août 2007 à 11:13
Excellent et compact Merci 10
avelone
Messages postés15Date d'inscriptiondimanche 5 août 2007StatutMembreDernière intervention30 novembre 2010 5 août 2007 à 20:03
Merci pour le code pour gérer que les chiffres et les virgules.
Très Bien
Merci
C'est excellent
hvb
Messages postés939Date d'inscriptionvendredi 25 octobre 2002StatutMembreDernière intervention27 janvier 20093 6 mars 2007 à 12:34
effectivement, e.KeyChar.IsLetter(e.KeyChar) est à remplacer par Char.IsLetter(e.KeyChar)
Le code date de 4 ans, j'apprenais la POO par tatonnement... ^^
Par contre pour ta "question taquine", effectivement, elle taquine... il faudrait penser à empecher le copier coller, qui peut tout faire exploser.
Je n'ai pas le temps de regarder tout de suite, mais on doit pouvoir ruser assez facilement.
Merci de tes remarques :)
cs_Benouille
Messages postés215Date d'inscriptionjeudi 24 octobre 2002StatutMembreDernière intervention 7 septembre 2007 5 mars 2007 à 15:19
pas mal le e.handled = true ...
faut que je teste ça!
par contre c'est louche ton " e.KeyChar.IsLetter(e.KeyChar) "
ça semble bizarre d'appeler une fonction avec lui même en parametre.
monobjet.mafonction (monobjet) ... chelou
je suppose que c'est une réminiscence de l'héritage ...
tite dernière question taquine, si on fait un copié collé dans ton textbox, s'passe quoi?
vb nouille, 4 ans plus tard
cs_666Ange
Messages postés19Date d'inscriptionmercredi 2 avril 2003StatutMembreDernière intervention 2 mars 2009 19 août 2003 à 18:05
Merci pour le e.handled = true !!!
LittleKeichi
Messages postés6Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention25 novembre 2011 17 août 2003 à 10:31
Kler ke c simpa moi aussi je me suis fé c**** comme tu dis et pis finalement j'avais tjrs po de soluce. Donc un franc Merci s'impose :)
À la revoyure !
cs_Falk
Messages postés31Date d'inscriptiondimanche 16 mars 2003StatutMembreDernière intervention19 avril 2003 13 avril 2003 à 21:20
Vraiment Simpa ta source, dans le cadre de mon convertisseur Euros j'avais "bidouillé en testant si ma valeur d'entrée était de type Numérique (If Not IsNumeric(txtTaux.Text) Then...), ta solution semble plus fiable merci =)
17 févr. 2012 à 21:47
Pour compléter et pour ceux souhaitant traiter plusieurs champs en même temps sans dupliquer le code, il suffit de faire ainsi (pour le premier exemple mais c'est pareil pour les autres test en exemple) :
Private Sub CheckDigit(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress, TextBox2.KeyPress, TextBox3.KeyPress If Char.IsDigit(e.KeyChar) False And Asc(e.KeyChar) <> System.Windows.Forms.Keys.Back Then e.Handled True
End Sub
Le label CheckDigit n'est pas la désignation d'un TextBox, mais un label de votre choix (vous pouvez mettre Toto :-)), c'est l'ajout des TextBox avec leur Event qui permet de regrouper en une seule fonction le traitement pour tous les TextBox ajoutés.
11 août 2010 à 14:10
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Dim pos As Integer = TextBox1.SelectionStart
If Char.IsUpper(e.KeyChar) = False And Asc(e.KeyChar) <> System.Windows.Forms.Keys.Back Then
e.Handled = True
If Char.IsLetter(e.KeyChar) Then
TextBox1.Text = TextBox1.Text.Insert(pos, e.KeyChar.ToString.ToUpper)
TextBox1.SelectionStart = pos + 1
End If
End If
End Sub
18 août 2007 à 11:13
5 août 2007 à 20:03
Très Bien
Merci
C'est excellent
6 mars 2007 à 12:34
Le code date de 4 ans, j'apprenais la POO par tatonnement... ^^
Par contre pour ta "question taquine", effectivement, elle taquine... il faudrait penser à empecher le copier coller, qui peut tout faire exploser.
Je n'ai pas le temps de regarder tout de suite, mais on doit pouvoir ruser assez facilement.
Merci de tes remarques :)
5 mars 2007 à 15:19
faut que je teste ça!
par contre c'est louche ton " e.KeyChar.IsLetter(e.KeyChar) "
ça semble bizarre d'appeler une fonction avec lui même en parametre.
monobjet.mafonction (monobjet) ... chelou
je suppose que c'est une réminiscence de l'héritage ...
tite dernière question taquine, si on fait un copié collé dans ton textbox, s'passe quoi?
vb nouille, 4 ans plus tard
19 août 2003 à 18:05
17 août 2003 à 10:31
À la revoyure !
13 avril 2003 à 21:20