zaki Posté(e) le 30 juillet 2008 Share Posté(e) le 30 juillet 2008 (modifié) bonjour svp comment déclancher une action d'un controle du formulaire lors d'un appuie sur une touche clavier en c# merci Modifié le 30 juillet 2008 par zaki Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mouradski Posté(e) le 30 juillet 2008 Share Posté(e) le 30 juillet 2008 (modifié) 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 . Modifié le 30 juillet 2008 par mouradski Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Darkvader Posté(e) le 30 juillet 2008 Share Posté(e) le 30 juillet 2008 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. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mouradski Posté(e) le 30 juillet 2008 Share Posté(e) le 30 juillet 2008 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 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
zaki Posté(e) le 30 juillet 2008 Auteur Share Posté(e) le 30 juillet 2008 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 !! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mouradski Posté(e) le 30 juillet 2008 Share Posté(e) le 30 juillet 2008 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() ); } Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mouradski Posté(e) le 30 juillet 2008 Share Posté(e) le 30 juillet 2008 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 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
zaki Posté(e) le 31 juillet 2008 Auteur Share Posté(e) le 31 juillet 2008 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 ?) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mouradski Posté(e) le 31 juillet 2008 Share Posté(e) le 31 juillet 2008 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. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
zaki Posté(e) le 31 juillet 2008 Auteur Share Posté(e) le 31 juillet 2008 merci beaucoup mourad khoya !! c bon ça marché ("j'ai fais une khalota avant lol ") merci beaucoup encore !! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Darkvader Posté(e) le 31 juillet 2008 Share Posté(e) le 31 juillet 2008 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."); } } } Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
zaki Posté(e) le 31 juillet 2008 Auteur Share Posté(e) le 31 juillet 2008 merci beacoup les amis Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.