You are not connected. Please login or register

View previous topic View next topic Go down  Message [Page 1 of 1]

1 C# An keypress event example on Tue Aug 24, 2010 3:40 am

Top


Contributor
Loading
You'll see when you do it. Wink
Code:
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.");
  }
}

View previous topic View next topic Back to top  Message [Page 1 of 1]

Related topics

Permissions in this forum:
You cannot reply to topics in this forum