Mega Code Archive

 
Categories / C# / Services Event
 

An keypress event example

/* C#: The Complete Reference  by Herbert Schildt  Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852 */ // An keypress event example.     using System;    // Derive a custom EventArgs class that holds the key.  class KeyEventArgs : EventArgs {    public char ch;  }    // Declare a delegate for an event.   delegate void KeyHandler(object source, KeyEventArgs arg);    // Declare a key-press event class.  class KeyEvent {    public event KeyHandler KeyPress;      // This is called when a key is pressed.    public void OnKeyPress(char key) {      KeyEventArgs k = new KeyEventArgs();          if(KeyPress != null) {        k.ch = key;        KeyPress(this, k);      }    }  }    // A class that receives key-press notifications.  class ProcessKey {    public void keyhandler(object source, KeyEventArgs arg) {      Console.WriteLine("Received keystroke: " + arg.ch);    }  }    // Another class that receives key-press notifications.  class CountKeys {    public int count = 0;      public void keyhandler(object source, KeyEventArgs arg) {      count++;    }  }    // Demonstrate KeyEvent.  public class KeyEventDemo {    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("Enter some characters. " +                        "Enter a period to stop.");      do {        ch = (char) Console.Read();        kevt.OnKeyPress(ch);      } while(ch != '.');      Console.WriteLine(ck.count + " keys pressed.");    }  }