Vertefeuille
Messages postés19Date d'inscriptiondimanche 9 janvier 2005StatutMembreDernière intervention20 janvier 2007
-
8 janv. 2007 à 21:39
Vertefeuille
Messages postés19Date d'inscriptiondimanche 9 janvier 2005StatutMembreDernière intervention20 janvier 2007
-
8 janv. 2007 à 22:32
Salut,
Voici mon problème, à vous de le résoudre
J'ai dans mon code un sub Timer1_Tick dans lequel je fais une capture d'écran toutes les "x" msecondes (c'est une opération qui demande pas mal de mémoire...). J'aimerai arrêter le Timer1 quand j'appuye sur une touche, comment je fais ?
J'ai déjà essayer KeyPress, KeyDown et un Application.DoEvents() mais ça ne veut pas prendre en compte ma touche quand elle est préssée. Je précise que le timer se trouve bien sur la Form qui doit recevoir la touche.
Que faut-il faire pour que ma touche soit reconnue en dehors de la boucle du Timer1 ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 8 janv. 2007 à 22:27
j'ai oublier de te preciser de vérifier que la propriété KeyPreview de ta form doit etre à true. Si tu as des controls qui euvent prendre le focus sur ta form, si keypreview est à false, c'est le controle qui a le focus qui récupèrera l'entrée clavier.
Avec keypreview à true, c'est la form qui intercepte l'entrée clavier avant de la passer au controle actif.
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 8 janv. 2007 à 22:11
Es-tu sur que ton code execute bien le Timer1.Stop ???? Je ne pense pas. Pour moi ton test n'est pas correct. Il faudrait que tu fasse une comparairaison de chaines pas seulement un test
Pourquoi ne pas faire : If e.KeyCode = Keys.K then ????? Perso ça me parait nettement plur propre
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Vous n’avez pas trouvé la réponse que vous recherchez ?
Vertefeuille
Messages postés19Date d'inscriptiondimanche 9 janvier 2005StatutMembreDernière intervention20 janvier 2007 8 janv. 2007 à 22:16
Et je ne commence pas mal, de l'aide c'est quoi ? C'est répondre à ma question pas faire un code ! De plus mon bout de code n'est pas indispensable pour comprendre : j'ai un timer et j'aimerai l'arreter par une touche (ça ne ressemble pas à un "faire le boulot" comme tu dis). Et merci pour l'accueil, ça fait toujours plaisir !
Vertefeuille
Messages postés19Date d'inscriptiondimanche 9 janvier 2005StatutMembreDernière intervention20 janvier 2007 8 janv. 2007 à 22:22
ça ne fonctionne pas non plus, j'ai même mis un point d'arrêt au moment de l'évaluation de If e.KeyCode = Keys.K mais il ne passe même pas par keydown apparement.
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 8 janv. 2007 à 22:29
Faisons un peu de débuggage...
1) Est-ce que ton form à bien le focus (la barre de titre est bleue) lorsque tu appuyes sur k ?
2) Est-ce que la propriété KeyPreview de ton form est bien mise à True ? Sinon ce sont les contrôles ayant le focus qui recoivent le message de la touche.
A partir de là, si KeyDown n'est pas déclenché, c'est que tu as un problème de clavier.
3) Vérifie le test à faire en mettant par exemple MsgBox(e.KeyCode) dans l'évènement KeyDown.