Désactiver la selection automatique dans une listBox

Résolu
cs_bricelt Messages postés 2 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 2 février 2011 - 2 févr. 2011 à 15:38
cs_bricelt Messages postés 2 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 2 février 2011 - 2 févr. 2011 à 20:08
Bonjour à tous,

Je développe une application sur un scanner de code barre.

Mon problème est que lorsque le focus est sur une listBox et que je scan un code barre (qui est interprété comme une saisie au clavier) la liste sélectionne la ligne qui commence par le dernier caractère du code barre (comme si je l'aurais saisi au clavier).

ma question est : y a-t-il un moyen d'empêcher la listBox de changer la ligne sélectionnée lorsqu'elle reçoit une saisie?

Le scanner est un pocket PC et mon logiciel est en C# (framework .NET 2.0)

Merci

2 réponses

cs_bricelt Messages postés 2 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 2 février 2011
2 févr. 2011 à 20:08
Salut Vagg,

Merci pour avoir répondu.

C'est un pocketPC datalogic Kayman.

l'application est en C# je la développe dans Visual studio 2008.

j'ai télécharger et installé le SDK pour mon pocket. Losque je scan ça déclenche un évènement, je récupère le code barre et je l'envoie dans une List de string lié par un BindingSource à ma listBox. Ça peut semblé compliqué mais le problème n'est pas là.

Le problème est que kan je scan si ma listBox est sélectionnée il change d'item sélectionné (comme si je tapais le codeBar au clavier). C'est un comportement normal d'une listBox.

Je voulais que la listBox ne réagisse pas aux entrées du clavier (ou du scan en l'occurrence)

J'ai finalement trouvé une solution a mon problème. Sur l'event de KeyPress de ma listBox, je met l'attribut Handled à true.

private void listBoxCode_KeyPress(object sender, KeyPressEventArgs e)
{
   e.Handled = true;
}


l'évènement de "touche pressée" de la listBox est donc considéré comme traité et ne sera pas passé au sous control.

Il y a aussi la solution du e.SuppressKeyPress() sur un évènement KeyDown mais ça n'a pas l'air de fonctionné dans le framework 2.0 ou sur le pocket.

j'espère que ça aidera quelqu'un.

Bye.
3
cs_vagg Messages postés 102 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 24 janvier 2013
2 févr. 2011 à 16:43
Bonjour,

Peux-tu m'en dire plus sur ton PocketPC stp?
Utilise t-il un logiciel lui permettant de scanner un code barre (style: DataWedge )?

Si j'ai bien compris lorsque tu scan, ça écrit le code EAN13 (je suppose) dans ta ListBox puis passe à la ligne. C'est bien ça?
0
Rejoignez-nous