andalo
Messages postés102Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention20 octobre 2012
-
12 juin 2008 à 17:33
andalo
Messages postés102Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention20 octobre 2012
-
13 juin 2008 à 10:05
Bonjour a tous,
Apres recherche sur le web, je n'ai trouvé que des devellopeurs dans la meme situation sans solution!
j'ai un controle qui perd le focus quand j'utilise les fleches haut, bas, gauche, ou droite. C'est problematique car j'ai besoin de le faire reagir a ces touches claviers. Du coup je ne passe plus dans mon evenement keydown de mon controleY a t'il moyen de desactiver cette perte de focus??
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 12 juin 2008 à 18:26
Salut
Pas assez clair.
"J'ai un control" : quel type ?
"qui perd le focus" : Oui, c'est normal.
J'ai fait l'essai avec deux CommandButton : les flèches font passer d'un bouton à l'autre.
"j'ai besoin de le faire reagir" : "le" = qui ?
Donc, ta question est "comment détecter les flèches quand aucun control de saisie n'a le focus"
En effet, c'est un problème car le KeyPreview de la forme ne fonctionne pas puisque c'est Windows qui intercepte cet évènement pour gérer l'affichage.
2 solutions :
- Donner le focus à une TextBox (installé en dehors de l'affichage de la forme) par exemple avant de taper les flèches
- Faire un Hook de la forme afin de capturer tous les évènements avant que Windows ne s'en occupe.
C'est une technique plus complexe.
Tu trouveras des exemples en tapant "hook" dans la recherche des codes en excluant .NET
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
andalo
Messages postés102Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention20 octobre 2012 13 juin 2008 à 10:05
C'est un controle de type "map", il sert a afficher de l'information geographiques georeferencée, (exemple: image aerienne que l'on peut superposer avec des couches d'informations vecteur de type polygone representant des parcelles). Je voulais me servir des flêches pour deplacer l'emprise de la carte, la fleche "up" devant provoquer un deplacement vers le nord.
Merci pour les solutions proposées malgré mon manque de clarté!
Je suis un peu frileu pour le hook, j'avais déjà implanté un code de ce type(pour intercepter la molette de la souris) à une de mes applis mais je ne dois pas avoir le niveau necessaire pour le faire fonctionner correctement et ca plantais. La soluce textbox était interessante mais je pense avoir trouvé plus simple :
Ce n'est peut etre pas très propre mais ça fonctionne. En tout cas elle est hyper simple. Je gère les déplacements de ma carte (controle "map") dans l'evenement "lost_focus". Ce, en verifiant bien sur que une des quatres flêche du clavier est enfoncée. Si c'est le cas je redonne le focus au controle map apres avoir effectué le déplacement.