Textbox et interdire certains caracteres !!! [Résolu]

cs_jimmy69 787 Messages postés dimanche 22 décembre 2002Date d'inscription 27 novembre 2008 Dernière intervention - 27 juil. 2006 à 08:53 - Dernière réponse : cs_jimmy69 787 Messages postés dimanche 22 décembre 2002Date d'inscription 27 novembre 2008 Dernière intervention
- 28 juil. 2006 à 09:38
Bonjour,

Je bosse avec vb net et j'utilises visual studio 2003 depuis peu :-( !

sur ma form principale, j'ai un textbox simple mais limite via un maxlenght de 20, j'aimerais quand quand l'utilisateur entre certains caracteres comme par exemple :

<,>,@, !, ?

que ceux ci soient rejettes par l'application avec un messagebox par exemple !

Si quelqu'"un avait un p'tit bout de code a me proposer ou une solution pour faire cela je suis preneur !

Je vous remercie
Christophe
Afficher la suite 

Votre réponse

13 réponses

Meilleure réponse
cs_drahcir 745 Messages postés mardi 30 novembre 2004Date d'inscription 15 septembre 2009 Dernière intervention - 27 juil. 2006 à 14:08
3
Merci
For






Each
c

As



Char



In
tabChar


      If
e.KeyChar = c

Then






      '  Exit Sub

      sender.Text =




" error"






      End



If






NextCa ça marche.

<hr />
@+  

Merci cs_drahcir 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 124 internautes ce mois-ci

Commenter la réponse de cs_drahcir
Meilleure réponse
cs_drahcir 745 Messages postés mardi 30 novembre 2004Date d'inscription 15 septembre 2009 Dernière intervention - 28 juil. 2006 à 09:21
3
Merci
Re,

je viens de tester ça, et ça marche :

Sub TxtService_TextChanged(ByVal sender AsObject, ByVal e As System.EventArgs) Handles TxtService.TextChanged

      Dim txtice
As
Char

      Dim tabchar()
As
Char = {
"<",
">"}

      For
Each txtice
In tabchar

            If sender.Text.indexof(txtice) <> -1
Then            MsgBox(

"Invalid characters " & txtice, MsgBoxStyle.Exclamation,
"[ERROR]")            TxtService.Text =

""

            End
If

      Next

End
Sub

Next

<hr />
@+  

Merci cs_drahcir 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 124 internautes ce mois-ci

Commenter la réponse de cs_drahcir
cs_drahcir 745 Messages postés mardi 30 novembre 2004Date d'inscription 15 septembre 2009 Dernière intervention - 27 juil. 2006 à 08:59
0
Merci
Salut,


 


utilise l'évènement TextChanged de ton TextBox.


Private
Sub TextBox1_TextChanged(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles TextBox1.TextChanged



If
TextBox1.Text.IndexOf("<") <> -1

Then



MsgBox("Ce caractère est interdit!!")







End



If






End



Sub

Tu peux ensuite le supprimer.
Commenter la réponse de cs_drahcir
olanfr 46 Messages postés mardi 9 décembre 2003Date d'inscription 25 novembre 2006 Dernière intervention - 27 juil. 2006 à 09:04
0
Merci
Bonjour,


Moi je l'utilise sur le KeyPress :








Private



Sub
tbMdlCreate_KeyPress(

ByVal
sender

As



Object
,

ByVal
e

As
System.Windows.Forms.KeyPressEventArgs)

Handles
tbMdlCreate.KeyPresse.Handled = Texte_Alphanumeric(e.KeyChar)


End



Sub
 



Public






Function
Texte_Alphanumeric(

ByVal
c

As



Char
)

As



Boolean






If
c = Microsoft.VisualBasic.ChrW(13)

Or
c = Microsoft.VisualBasic.ChrW(8) _


Or
(c > Microsoft.VisualBasic.ChrW(47)

And
c < Microsoft.VisualBasic.ChrW(58)) _


Or
(c > Microsoft.VisualBasic.ChrW(64)

And
c < Microsoft.VisualBasic.ChrW(91)) _


Or
(c > Microsoft.VisualBasic.ChrW(96)

And
c < Microsoft.VisualBasic.ChrW(123))

Then






Return



False






Else






Return



True






End



If






End



Function
@+
Commenter la réponse de olanfr
Ulala2 86 Messages postés lundi 27 janvier 2003Date d'inscription 10 décembre 2006 Dernière intervention - 27 juil. 2006 à 09:15
0
Merci
bonjour,

je ne sais pas si c'est toujours valable en .net, mais moi j'utilise une regex :

Private Sub codepostal_KeyPress(KeyAscii As Integer)
If Not Chr(KeyAscii) Like "[0123456789]" And KeyAscii <> Asc(vbBack) Then KeyAscii = 0
End Sub
Commenter la réponse de Ulala2
cs_drahcir 745 Messages postés mardi 30 novembre 2004Date d'inscription 15 septembre 2009 Dernière intervention - 27 juil. 2006 à 09:32
0
Merci
Avec VS 2005, il existe désormais le contrôle MaskedTextBox qui permet de définir directement son masque de saisie, c'est encore plus pratique!
Commenter la réponse de cs_drahcir
cs_jimmy69 787 Messages postés dimanche 22 décembre 2002Date d'inscription 27 novembre 2008 Dernière intervention - 27 juil. 2006 à 13:59
0
Merci
salut a tous,

merci deja a vous pour vos posts !

voila ce que j'ai fait mais ca ne fonctionne pas :
J'ai declare un tableau de char avec deux caracteres interdits
je parcourre mon tableau qd le user frappe une touche si cette touche fait partie du tableau je voudrais setter le textbox avec un message tout simplement !

mais ca ne marche pas !
ca plante meme pas y'a rien qui se passe !

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

Dim tabChar()
As
Char = {">", "<"}

Dim i
As Int16

For i = 0
To i < tabChar.Length
Step 1

If e.KeyChar = tabChar(i)
Then

'Exit SubTxtService.Text = " error"

End
If

Next

End
SubSi vous avez une idée je suis preneur !

Je vous remercie
Christophe
Commenter la réponse de cs_jimmy69
cs_jimmy69 787 Messages postés dimanche 22 décembre 2002Date d'inscription 27 novembre 2008 Dernière intervention - 27 juil. 2006 à 14:43
0
Merci
Salut salut,

Je vous remercie tous pour vos posts et votre aide !

ca tourne c'est impeccable

merci et bonne fin de journée
christophe
Commenter la réponse de cs_jimmy69
cs_drahcir 745 Messages postés mardi 30 novembre 2004Date d'inscription 15 septembre 2009 Dernière intervention - 27 juil. 2006 à 14:53
0
Merci
Ok ça marche, mais ce qui m'échappe, c'est pourquoi dans le code que tu as proposé, on ne rentre pas dans la boucle for!!!!


J'ai fait le test en pas à pas, et on y rentre pas!! Ca doit être évident, mais je n'y comprend rien

Si quelqu'un peut éclairer ma lanterne....





<hr />

@+  
Commenter la réponse de cs_drahcir
cs_jimmy69 787 Messages postés dimanche 22 décembre 2002Date d'inscription 27 novembre 2008 Dernière intervention - 27 juil. 2006 à 18:19
0
Merci
Oui mais aussi !

Je vous remerecie en tout cas !

Christophe
Commenter la réponse de cs_jimmy69
cs_jimmy69 787 Messages postés dimanche 22 décembre 2002Date d'inscription 27 novembre 2008 Dernière intervention - 28 juil. 2006 à 09:05
0
Merci
Re bonjour a tous,

Eu oui c'est encore moi juste pour une p'tite question encore concernant le key press !!!

voila ce que j'ai fait grace a vous :-):
Private

Sub TxtService_KeyPress(
ByVal sender
As
Object,
ByVal e
As System.Windows.Forms.KeyPressEventArgs)
Handles TxtService.KeyPress

Dim txtice
As
Char

For
Each txtice
In tabChar

If e.KeyChar = txtice
ThenMsgBox("Invalid characters " & e.KeyChar, MsgBoxStyle.Exclamation, "[ERROR]")

TxtService.Text = ""

End
If

Next

Mais le probleme en fait c'est que le textbox n'est jamais remis a blanc !

quand je rentre un mauvais caracteres celui ci s'affiche dans le text box !!!!

et bien sur je voudrais que celui ci ne s'affiche pas dans le text box !

vos idées et bout de codes sont les bienvenues !

Bonne journée
Christophe
Commenter la réponse de cs_jimmy69
cs_drahcir 745 Messages postés mardi 30 novembre 2004Date d'inscription 15 septembre 2009 Dernière intervention - 28 juil. 2006 à 09:18
0
Merci
En fait, quand tu lui demandes de vider le textbox, le caractère tapé n'y a pas encore été ajouté. Si tu mets un espion sur TxtService.Text, tu verras qu'il est vide.....

Je pense que c'est dans l'évènement TextChanged qu'il faut que tu agisses sur le contenu du textbox.





<hr />

@+  
Commenter la réponse de cs_drahcir
cs_jimmy69 787 Messages postés dimanche 22 décembre 2002Date d'inscription 27 novembre 2008 Dernière intervention - 28 juil. 2006 à 09:38
0
Merci
Ok drahcir

Trop fort ;-)

Merci beaucoup chef ;-)

Bonne journée a toi
Christophe
Commenter la réponse de cs_jimmy69

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.