using System; public class ExempleTouche { public static void Main() { KeyEvent kevt = new KeyEvent(); ProcessKey pk = new ProcessKey(); CountKeys ck = new CountKeys(); char ch; kevt.KeyPress += new KeyHandler(pk.keyhandler); kevt.KeyPress += new KeyHandler(ck.keyhandler); Console.WriteLine("Tapez quelque chose pour sortir tapez 'Q'."); do { ch = (char) Console.Read(); kevt.OnKeyPress(ch); } while(ch != 'Q'); Console.WriteLine(ck.count + " Touche(s) pressée(s)."); } } // Créer une classe personnalisé qui gère les touches appuyées. class KeyEventArgs : EventArgs { public char ch; } // Déclarer un 'délégué' pour les événements. delegate void KeyHandler(object source, KeyEventArgs arg); // Classe pour gérer les événements de 'KeyPress'. class KeyEvent { public event KeyHandler KeyPress; // Cette méthode s'exécute lorsqu'une touche est pressée. public void OnKeyPress(char key) { KeyEventArgs k = new KeyEventArgs(); if(KeyPress != null) { k.ch = key; KeyPress(this, k); } } } class ProcessKey { public void keyhandler(object source, KeyEventArgs arg) { Console.WriteLine("Les touches pressées: " + arg.ch); } } class CountKeys { public int count = 0; public void keyhandler(object source, KeyEventArgs arg) { count++; } } |
0