Passer d'une textbox à une autre

cash1 Messages postés 13 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 8 mars 2009 - 3 mars 2008 à 22:13
cash1 Messages postés 13 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 8 mars 2009 - 4 mars 2008 à 08:15
Hello,
J'ai une question concernant les textbox.
J'aimerais pouvoir faire un soft pour charger des numéros de série.
L'utilisateur n'aurait qu'à entrer le numéro de série et cliquer sur un bouton pour lancer le download.
J'ai 3 textbox correspondant à 3 groupes de 3 chiffres. J'ai réussi à limiter mes textbox pour 3 chiffres, mais j'aimerais pouvoir faire passer le curseur automatiquement d'une textbox à l'autre une fois qu'elle est pleine. (Un peu comme les clé serial des softs lors de l'installation) Je n'ai pas envie qu'on doive cliquer dans chaque box l'une après l'autre mais taper la liste des chiffre
 
    1°           2°           3°

|123| -
|456| -
|789|

Merci d'avance de votre réponse
A+

4 réponses

LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
3 mars 2008 à 23:13
Bonsoir,
je ne connais pas trop vb.net mais en VB6
c' est faisable grace à la procédure KeyUp.
On teste sur la longueur du contenu et si c' est égale à 3 ,
on passe le focus à la zone d' après.
0
Lunikmarty Messages postés 55 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 17 avril 2008
3 mars 2008 à 23:27
Utilise l'événement Change sur ta TextBox:

Private Sub Text1_Change()
If Len(Text1.Text) = 3 Then Text2.SetFocus
End Sub

Tu peux faire des copier coller de tes TextBox, cela devient beaucoup plus simple et tu n'est plus obligé de crée un événement Change sur chacune de tes TextBox.
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
3 mars 2008 à 23:31
tu peux aussi corser le tout
en fixant la longueur maximale de tes textbox à 3.
0
cash1 Messages postés 13 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 8 mars 2009
4 mars 2008 à 08:15
Merci beaucoup Lunikmarty,
ça fonctionne impeccable, en fait j'avais pas compris les .focus.
La syntaxe est un peu différente chez moi(j'utilise VB Express2008), ça donne ça:

Private SubTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        If Len(TextBox1.Text) = 3 Then
            serial_val2. Focus()
        End If
    End Sub
  
    Private SubTextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
        If Len(TextBox2.Text) = 3 Then
            TextBox3.Focus()
        End If
    End Sub

    Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged
        If Len(TextBox3.Text) = 3 Then
            Button1.Focus()
        End If
    End sub

Encore Merci! A Bientôt
0
Rejoignez-nous