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#2.0] Intercepter les touches du clavier


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 184
    Points : 56
    Points
    56
    Par défaut [C#2.0] Intercepter les touches du clavier
    Bonjour,

    j'ai creer un projet sous Visual C# en C# 2.0,
    J'ai une winform principal et j'aimerais pouvoir intercepter les touches du clavier. Je me suis donc rendu dans le evenements de cette winform et j'ai ajouté un evenement keydown : mais sa ne marche pas

    Pouriez vous me dire comment intercepter une touche enfoncé par l'utilisateur ?

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Pour les intercepter au niveau de la form il faut mettre KeyPreview à true

  3. #3
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 184
    Points : 56
    Points
    56
    Par défaut
    Oui mais sa marche pas avec les touches flechés

    j'ai ajouté this.KeyPreview = true; dans la classe form1()

    voici mon délégué :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Form1_KeyPress);
    
    qui renvoie donc à la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    privatevoid Form1_KeyPress(object sender, KeyPressEventArgs e)
    {
    MessageBox.Show("touche pressé"); 
    }
    

  4. #4
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Les touches fléchées ne produise pas de caractère ascii, ni les touches F1,F2, ....

    Il faut utiliser KeyDown pour choper toutes les touches

  5. #5
    Membre régulier
    Inscrit en
    Décembre 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 160
    Points : 92
    Points
    92
    Par défaut
    pour les touches speciales il faut surchargé la methode IsInputKey

  6. #6
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 184
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par abelman
    Les touches fléchées ne produise pas de caractère ascii, ni les touches F1,F2, ....

    Il faut utiliser KeyDown pour choper toutes les touches
    Sa marche pas

    pour les touches speciales il faut surchargé la methode IsInputKey
    Je suis debutant je sais pas le faire
    Merci de votre aide

  7. #7
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Citation Envoyé par iowa
    Sa marche pas
    Bien sur que si. Tu as bien mis KeyPreview à True?

  8. #8
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 184
    Points : 56
    Points
    56
    Par défaut
    Oui sa marche avec toutes les touches sauf lorsque j'appuie sur une des touches fléchées sa renvoie le focus aux boutons

  9. #9
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    C'est normal c'est le traitement par défaut.

    Tu peux l'annuler dans le KeyDown pour les touches que tu souhaites en faisant

    ;

  10. #10
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 184
    Points : 56
    Points
    56
    Par défaut
    J'ai ajouté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <div style="text-align: left;">e.Handled = true</div>
    Dans ma fonction mais sa marche pas
    J'ai pas bien compris comment je peux l'annuler pour les touches que je souhaite

  11. #11
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 184
    Points : 56
    Points
    56
    Par défaut
    C'est bon je vais utiliser les touches 8,4,6,2

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

Discussions similaires

  1. Intercepter les touches du clavier
    Par boby62423 dans le forum ActionScript 3
    Réponses: 6
    Dernier message: 17/07/2009, 22h38
  2. Intercepter les touches clavier sur la fiche
    Par Bourak dans le forum Langage
    Réponses: 3
    Dernier message: 14/01/2008, 15h33
  3. Intercepter les touches du clavier
    Par yacscream dans le forum C++Builder
    Réponses: 8
    Dernier message: 07/02/2007, 11h47

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