2009-03-11 9 views
0

Pendant le développement, j'ai remarqué que certains PDA avec Windows CE et éventuellement Windows Mobile envoient deux fois la touche Entrée dans l'événement de touche enfoncée, donc j'exécute deux fois le code qui se trouve sous l'événement de presse touche du contrôle pour le bouton de retour.L'événement keypress est déclenché deux fois pour un seul bouton ENTER dans Windows CE

Je suppose que c'est un bug matériel et je voudrais vous demander comment vous l'avez résolu sans changer votre logique d'application.

Répondre

0

Sans changer la logique? Vous ne pouvez vraiment pas (sauf s'il y a une correction de matériel ou de firmware). Je suppose que le mécanisme le plus simple (qui nécessite un changement logique) est de traiter deux touches Enter ou presses sur une courte période (disons < 100ms) puis d'ignorer la seconde.

+0

En raison de la possibilité que l'opération invoquée prenne plus de 100 ms et que les touches soient traitées séquentiellement. Je suggère de faire le contraire. Retenez le traitement de l'entrée et attendez un moment pour voir si un autre arrive avant de traiter l'un d'entre eux. – Quibblesome

0

Je ne sais pas si cela vous aidera, mais si vous lisez le port du clavier Enter est vu comme deux octets plutôt qu'un.

0

Cela m'est également arrivé et il s'est avéré que c'était parce que l'option "permettre la répétition du caractère" était activée dans le panneau de commande-> clavier. Le délai de répétition par défaut était beaucoup trop rapide pour le clavier que nous avons utilisé, donc je l'ai juste ralenti et le problème est parti.

Questions connexes