Jump to content
zaki

associer une touche clavier en c#

Recommended Posts

bonjour

svp comment déclancher une action d'un controle du formulaire lors d'un appuie sur une touche clavier en c#

merci

Edited by zaki

Share this post


Link to post
Share on other sites

Salem,

 

Ben tout les Contrôles dans C# héritent de la classe Control (Plus précisément System.Windows.Forms.Controls.Control :) ) et qui contient dans ces propriétés l'événement "KeyDown" (les événements sont représentés par une foudre en jaune sur visual studio)

 

Tu peux lui ajouter une fonction d'écoute comme suit :

monControl.KeyDown += new KeyEventHandler(MaFonctionEcoute)

La fonction d'écoute :

 

public private MaFonctionEcoute(object sender, KeyEventArgs e)

{

Traitement

}

Tu auras toutes les informations de l'événement dont la touche pressé sur l'argument 'e' de type KeyEventArgs . Edited by mouradski

Share this post


Link to post
Share on other sites
Salem,

 

Ben tout les Contrôles dans C# héritent de la classe Control (Plus précisément System.Windows.Forms.Controls.Control :) ) et qui contient dans ces propriétés l'événement "KeyDown" (les événements sont représentés par une foudre en jaune sur visual studio)

 

Tu peux lui ajouter une fonction d'écoute comme suit :

La fonction d'écoute :

 

Tu auras toutes les informations de l'événement dont la touche pressé sur l'argument 'e' de type KeyEventArgs .

 

Just a small correction.

 

There is no such namespace "System.Windows.Forms.Controls.Control" it's "System.Windows.Forms.Control" instead. Another thing that you should've mentioned is that Windows controls inherit from "System.Windows.Forms.Control" but Web Controls don't. Windows forms and Web forms have different controls that inherit from different namespaces.

Share this post


Link to post
Share on other sites
Just a small correction.

 

There is no such namespace "System.Windows.Forms.Controls.Control" it's "System.Windows.Forms.Control" instead. Another thing that you should've mentioned is that all Windows controls inherit from "System.Windows.Forms.Control" not Web Controls. Windows forms and Web forms have different controls that inherit from different namespaces.

 

Merci pour la correction DarkVador :)

Share this post


Link to post
Share on other sites

merci beacoups les amis

 

mais si vous pouver me donner un simple exemple (car je suis debutant )

par exemple : quand l'utilisateur appuie sur la touche 'a' un message.box.show se declanche

 

merci encore !!

Share this post


Link to post
Share on other sites
merci beacoups les amis

 

mais si vous pouver me donner un simple exemple (car je suis debutant )

par exemple : quand l'utilisateur appuie sur la touche 'a' un message.box.show se declanche

 

merci encore !!

 

Pour afficher la touche pressée :

 

public private MaFonctionEcoute(object sender, KeyEventArgs e)

{

 

System.Windows.Forms.MessageBox.Show( e.KeyData.ToString() );

 

}

Share this post


Link to post
Share on other sites

Re,

 

Si tu veux faire des tests sur la touche pressée, comme la propriété KeyData est un énumerateur Keys

 

on peut par exemple :

 

if (e.KeyData == Keys.F2) { ........}

Keys qui est du namespace System.Windows.Forms.Keys normalement

Share this post


Link to post
Share on other sites

saha mourad

j'ai essayé mais j'ai eu ce message

 

Erreur 1 'System.EventArgs' ne contient pas une définition pour 'KeyData' et aucune méthode d'extension 'KeyData' acceptant un premier argument de type 'System.EventArgs' n'a été trouvée (une directive using ou une référence d'assembly est-elle manquante ?)

 

Share this post


Link to post
Share on other sites

Salem,

 

zak c'est "System.Windows.Forms.KeyEventArgs" et elle contient bien une définition pour KeyData.

 

public private MaFonctionEcoute(object sender, System.Windows.Forms.KeyEventArgs e)

Si ça marche pas tu postes le code complet.

Share this post


Link to post
Share on other sites

merci beaucoup mourad khoya !!

 

c bon ça marché :) ("j'ai fais une khalota avant lol :D ")

 

merci beaucoup encore !!

Share this post


Link to post
Share on other sites
merci beacoups les amis

 

mais si vous pouver me donner un simple exemple (car je suis debutant )

par exemple : quand l'utilisateur appuie sur la touche 'a' un message.box.show se declanche

 

merci encore !!

 

If you are using VS2005 then below is a simple key press ('a' to 'z') detection.

 

using System;
using System.Drawing;
using System.Windows.Forms;

public partial class Form1 : Form
   {
       public Form1()
       {
           InitializeComponent();
           this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Form1_KeyPress);
       }

       private void Form1_KeyPress(object sender, KeyPressEventArgs e)
       {

           if (e.KeyChar >= 97 && e.KeyChar             {
               MessageBox.Show("Form.KeyPress: '" + e.KeyChar.ToString() + "' pressed.");
           }
       }
   }

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.




×
×
  • Create New...