OVH Cloud OVH Cloud

[PPC][VB.NET] pb saisie de code à barre

3 réponses
Avatar
Thiery Thibaud
J'ai un soucis avec la récupération d'une valeur par code à barre.
Mon PPC me permet de scanner des codes à barre et de récupérer le code en
clair dans un textbox. Les codes sont généralement composés de 6 caractères
+ un retour chariot(non affiché).

Ce que je souhaite faire, c'est une fois le code scanné, que je donne le
focus sur un autre champ de saisi... mais le pb, c'est que je n'ai pas
trouvé l'évènement adéquat pour faire ça ! j'ai bien tenté du KeyPressed,
KeyUp, textChanged, mais à chaque fois il me bloque au premier caractère,
c'est à dire que je ne vois de mon code que le 1er caractère dans le textbox
et pas les autres...

Quelqu'un a-t'il déjà été confronté à ce type de problème ?
D'avance merci

3 réponses

Avatar
Stephane TUET
Je ne sais pas si ma solution est vraiment bonne mais une des possibilités
qui me vient à l'esprit serait de tester la longueur de ton champs texte
avant de réaliser le changement de focus, dans l'évènement TextChanged...

Quelque chose du genre :

If len(Me.MonTextBox.Text) = 6 then
'Changement de focus
End If


Steph

"Thiery Thibaud" a écrit dans le message de
news: %
J'ai un soucis avec la récupération d'une valeur par code à barre.
Mon PPC me permet de scanner des codes à barre et de récupérer le code en
clair dans un textbox. Les codes sont généralement composés de 6
caractères + un retour chariot(non affiché).

Ce que je souhaite faire, c'est une fois le code scanné, que je donne le
focus sur un autre champ de saisi... mais le pb, c'est que je n'ai pas
trouvé l'évènement adéquat pour faire ça ! j'ai bien tenté du KeyPressed,
KeyUp, textChanged, mais à chaque fois il me bloque au premier caractère,
c'est à dire que je ne vois de mon code que le 1er caractère dans le
textbox et pas les autres...

Quelqu'un a-t'il déjà été confronté à ce type de problème ?
D'avance merci



Avatar
Thiery Thibaud
C'est une solution qui passe !
Ce qui me posait problème (là c'était de ma faute), c'est que je plaçais un
MsgBox dans mes tests dans la gestion de l'évènement, et c'est ça qui
provoquait la coupure....
Mais je me suis aperçu que mes codes n'avaient pas toujours la même longueur
en fin de compte... certains sont sur 7, voir davantage... et là, il faut
que je puisse identifier la fin de saisie d'un code... j'ai bien un retour
chariot à la fin, non affichable, mais je ne vois pas comment l'exploiter...
je continue de chercher...

Merci Stephane !
Avatar
Thiery Thibaud
Trouvé !
En fait il faut considéré le scan comme une saisie manuelle au clavier et en
faisant un code du genre:

Private Sub m_Textbox_KeyUp(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyEventArgs) Handles m_Textbox.KeyUp
If e.KeyCode = Keys.Return Then
m_Libelle.Focus()
End If
End Sub

... On peut gérer correctement les codes de taille différente, plus besoin
de tester la longueur dans TextChanged !