IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[C#] Utilisation du clavier (evênement flèche gauche droite)


Sujet :

Windows Forms

  1. #1
    Membre régulier Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Points : 93
    Points
    93
    Par défaut [C#] Utilisation du clavier (evênement flèche gauche droite)
    Bonjour à tous !!
    J'ai une application super simple mais mon patron la voudrait encore plus simple
    Il voudrait pouvoir controler certaines actions au clavier et notament avec les touches gauche droite du clavier.
    Pourriez vous me dire comment récupérer un évênement quand j'actionne ces touches la?
    j'ai vu qu'il y a un event KeyPress, KeyDown... dans le form mais je ne sais pas comment savoir quelle touche a été appuyée...

    Mon but est de lancer une methode à l'appuis d'une de ces deux touches donc j'ai juste besoin d'un impulsion... Je suppose donc qu'il faut que j'utilise KeyPress

    Je vous remercie d'avance pour vos réponses

  2. #2
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Oui tu as la piste, tu as MSDN

    Événement Control.KeyDown
    Énumération Keys

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Points : 291
    Points
    291
    Par défaut
    Les évènements KeyUp ou KeyDown retourne un paramètre e de type KeyEventArgs.
    Et bien
    - pour la flèche gauche : e.KeyCode = Keys.Left
    - pour la flèche droite : e.KeyCode = Keys.Rigth
    ...

  4. #4
    Membre régulier Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Points : 93
    Points
    93
    Par défaut
    merci pour vos réponse mais j'ai encore un petit problème.
    J'ai codé ca dans un evenement KeyDown avec un if (e.KeyCode == Keys.Right)
    mais quand j'appuye sur gauche ou droite dans mon appli il se balade entre les controles (dans mes textbox etc...)
    J'ai pris l'évênement KeyDown de ma form, cela viendrait il de la?

    [edit] je viens de tester il ne detecte même pas l'évênement puisqu'il ne rentre pas dans ma methode form_keydown...

  5. #5
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    c'est normal parce que la form a perdu le focus, tu peux enregistrer l'evenement KeyDwn pour tous les controls de ta form:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    foreach(Control ctrl in this.Controls)
            ctrl.KeyDown += new KeyEventHandler(form_keydown);

  6. #6
    Membre régulier Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Points : 93
    Points
    93
    Par défaut
    alors j'ai mis ton code dans mon form_load et ca marche très bien jusqu'a ce que je clique dans un control. Je pense que je perd le focus à ce moment la et je ne sais pas comment le garder ou même le récupérer. J'ai essayé de replacer ton code dans un evênement click sur le form pour le récupérer mais ca ne fonctionne pas
    une idée?

  7. #7
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Dans ta Form, tu mets KeyPreview = true
    Comme ça elle interceptera les touches appuyées avant tes controles.

    Dans ton code, si tu as fais un override de OnKeyDown au lieu d'y associer un handler, n'oublie pas d'appeler base.OnKeyDown() pour garder les fonctionnalités des sous-contrôles.

  8. #8
    Membre régulier Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Points : 93
    Points
    93
    Par défaut
    Citation Envoyé par Mose
    Dans ta Form, tu mets KeyPreview = true
    Comme ça elle interceptera les touches appuyées avant tes controles.

    Dans ton code, si tu as fais un override de OnKeyDown au lieu d'y associer un handler, n'oublie pas d'appeler base.OnKeyDown() pour garder les fonctionnalités des sous-contrôles.
    J'ai utilisé KeyPreview = true et ca fonctionne bien maintenant
    par contre je n'ai pas compris ce que tu m'as dit après mais je ne crois pas avoir fait de "override de OnKeyDown" donc je pense que ca ne s'applique pas a mon cas

    Merci à vous tous en tout cas ca marche d'enfer !! je vais eblouir mon patron avec ca il va pouvoir s'amuser avec ses petites touches

  9. #9
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Citation Envoyé par Mose
    Dans ta Form, tu mets KeyPreview = true
    +1 Mose je connaissais pas ce KeyPreview !!! on apprend des trucs ici

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. CLic gauche/droit sur clavier
    Par Lookie dans le forum Internet
    Réponses: 0
    Dernier message: 28/07/2013, 23h51
  2. [MooTools] Evénement pour clic droit ou gauche
    Par drick35 dans le forum Bibliothèques & Frameworks
    Réponses: 5
    Dernier message: 02/11/2012, 15h46
  3. Réponses: 3
    Dernier message: 07/07/2008, 09h06
  4. Désactiver les fleches gauches/droite du clavier
    Par Tsukaasa dans le forum Delphi
    Réponses: 2
    Dernier message: 20/03/2007, 17h31
  5. Utilisation des flèches gauche et droite sous IE
    Par effiix dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/02/2007, 16h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo