Keystrokes can be intercepted by handling the KeyPress and KeyDown events. Both of these events relay information to their handling methods in the form of their EventArgs. The KeyPressEventArgs, relayed by the Key-Press event, exposes the ASCII value of the key pressed in the KeyPressEventArgs. KeyChar property. The KeyEventArgs, relayed by the KeyDown event, exposes properties that indicate whether non-ASCII keys such as ALT, CTRL, or Shift have been pressed. To retrieve the ASCII key code from a keystroke, you would handle the KeyPress event and get that information from the KeyPressEventArgs.KeyChar property. To retrieve non-ASCII information, you would handle the KeyDown event and use the properties exposed by the KeyEventArgs instance.