Malixxx13
Messages postés6Date d'inscriptiondimanche 11 mai 2003StatutMembreDernière intervention24 octobre 2007
-
21 oct. 2007 à 10:08
Malixxx13
Messages postés6Date d'inscriptiondimanche 11 mai 2003StatutMembreDernière intervention24 octobre 2007
-
24 oct. 2007 à 05:16
Bonjour! Alors voilà ma question ;)
j'essai de faire un programme (en vb 6) qui détecte lorsqu'une touche est pressé(les flèches pour mon programme.) Je sais que le problème a beaucoup été traité, j'ai fait des recherches mais je n'ai rien trouvé qui fonctionnait!
J'ai trouvé qu'en utilisant KeyDown je pouvais le détecter.
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Print KeyCode
End Sub
Le problème est que dès que je met un command ou un texte.... cela ne marche plus!
J'aimerais par exemple faire déplacer un command en appuyant sur la flèche correspondante par exemple :
if keycode = 37 then
command1.left = command1.left - 200
endif
Aussi j'aurais une 2ième question, quelle est la différence entre prendre le keydown de la form, ou le keydown de la command ?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 21 oct. 2007 à 11:09
Bonjour,
Celà a déjà été dit et redit (par moi, entre autres) :
Quelle que soit la valeur donnée à la propriété KeyPreview de la Form :
La pression des flêches est interceptée par des contrôles prioritaires (parmi lesquels les boutons de commande).
Il faut donc :
- soit associer la pression des touches de flêches directionnelles à la touche ALT ou MAJ (par exemple)
- soit utiliser un mécanisme que j'ai exposé il y a quelque temps : inhibition temporaire des contrôles prioritaires (et rétablissement ensuite).
- soit substituer des pictureboxes ou des labels à tes boutons de commande (à condition que tu n'aies pas d'autres contrôle "prioritaires"
La 2ème méthode me parait la moins maladroite...
Une petite recherche et tu verras l'exposé d'un tel mécanisme
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 22 oct. 2007 à 08:37
L'évènement d'un controle est par définition l'évènement subi par ce seul contrôle, quel que soit l'évènement considéré.
L'évènement d'une Form ne concerne que la Firm elle même. Si la propriété Keypreview de la Form est définie à True, la Form subie tous les évènements claviers (keydown, Keypress et Keyup) avant tous les contrôles qu'elle contient, sauf en cas de présence de contrôles non inhibés et prioritaires (un bouton de commende est dans ce cas), cas dans lequel la Form se voit "voler" toute possibilité de reconnaitre les évènements de clavier correspondant à la pression de certaines touches, telles les touches directionnelles et TAB.
Malixxx13
Messages postés6Date d'inscriptiondimanche 11 mai 2003StatutMembreDernière intervention24 octobre 2007 21 oct. 2007 à 21:12
Merci de ton aide, je sais que le sujet a été traité mais je n'ai rien trouvé en fouillant !
J'Avais essayé avec des picturebox et des label et sa ne marchait pas plus... encore une fois merci de ton aide.. et pour ma 2ième question, quelle est la différence entre le keydown de la form et le keydown par exemple d'un command ou d'un text... ??