Textbox

Résolu
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015 - 4 juin 2008 à 10:45
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015 - 4 juin 2008 à 15:52
Salut !

Je voudrais que dans un textbox, quand je met 5 lettres ou chiffre, un tiret se met automatiquement.
C'est en fait pour effectuer un code d'activation.

XXXXX-XXXXX





-





XXXXX





-





XXXXX





-





XXXXX

En fait, tout au long du code, tant que les caractère ateignent 5, un tiret se met au sixième et nous avons 25 caractère plus les 4 tirets.

Pouvez vous m'aider svp ?
Merci d'avance

----------
OS        : Windows XP SP2
Platforme : VB 6.0 + SP6

Ok VB6.0 c'est pas net !

11 réponses

cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
4 juin 2008 à 14:01
re,

Bon c'est de la bidouille mais cela fonctionne comme tu veux ^^

Private Sub Text1_KeyPress(KeyAscii As Integer)


Static iNbChar As Integer
Static sChaine As String


If KeyAscii = 8 Then Exit Sub


sChaine = sChaine & Chr(KeyAscii)
iNbChar = iNbChar + 1




If iNbChar = 5 Then
   KeyAscii = 0
   Text1.Text = sChaine & "-"
   sChaine = sChaine & "-"
   Text1.SelStart = Len(Text1.Text)
   iNbChar = 0
End If


End Sub


A+
Exploreur

 Linux a un noyau, Windows un pépin
3
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015
4 juin 2008 à 10:54
Sans espace dsl :









XXXXX-XXXXX





-





XXXXX





-





XXXXX





-





XXXXX
0
cs_sylvain230 Messages postés 67 Date d'inscription mardi 5 décembre 2000 Statut Membre Dernière intervention 5 juillet 2010
4 juin 2008 à 11:00
tu pourrais pas créer 5 zones de textes ?
0
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
4 juin 2008 à 11:05
Salut,

Je pense que tu vas devoir traiter ta zone de text à l'aide de la fonction mid
genre :
tu testes la longueur de ta chaine
si elle atteint 5 caracteres alors à la fin de ta chaine tu la concaténes avec un tiret

ou sinon en plus simple tu fait 5 zones de texte que tu bloques à une saisie à 5 et ensuite en traitement tu concatene l'ensemble de type :
dim clé as string
clé = vbnullstring
for i=0 to 4
   clé = clé & textbox1(i).text & "-"
next
Perso je choisirai plus cette deuxieme solution

slb
---------------------------------------------------------------
Il faut beaucoup donner pour recevoir un tout petit peu...
---------------------------------------------------------------
0

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

Posez votre question
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
4 juin 2008 à 11:10
Salut,

Une autre solution :

Private Sub Text1_KeyPress(KeyAscii As Integer)


Static iNbChar As Integer


iNbChar = iNbChar + 1




If iNbChar = 5 Then
   Text1.Text = Text1.Text & "-"
   Text1.SelStart = Len(Text1.Text)
   iNbChar = 0
End If


End Sub


A+
Exploreur

 Linux a un noyau, Windows un pépin
0
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
4 juin 2008 à 11:29
bonjour,
MaskedTextBox est peut-être la solution

édite simplement la propriétée mask selon ton désir je crois que ça donnerait :
mTB1.Mask="00000-00000-00000-00000-00000"
0
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015
4 juin 2008 à 12:35
Salut !
Merci a tous !

Explorer, j'ai opté pour ta solution, mais il y'a un problème au début, il me met 4 caractères et 1 tiret puis il continue normal juska me donner 1 tiret a la fin :

KQD8-DU9ZQ-OZ6EC-KIZEY-QSJY7-L
0
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015
4 juin 2008 à 13:02
Par contre si je met I=1

Static I As Integer
I = I + 1
If I = 5 Then
   Text1.Text = Text1.Text & "-"
   Text1.SelStart = Len(Text1.Text)
   I = 1
End If

Il me met ca :
2132-1321-3213-1321-3213-1313

Ce qui est juste mais j'aurai opté pour les 5 caractères plutot que 4 !
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
4 juin 2008 à 13:45
lol...car le premier carractère n'est pas encore validé dans le KeyPress ^^

A+
Exploreur

 Linux a un noyau, Windows un pépin
0
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015
4 juin 2008 à 13:59
^o)
0
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015
4 juin 2008 à 15:52
Salut !

Merci Exploreur ^^
0
Rejoignez-nous