Catch a key stroke before the actual control

This example shows how to catch a key stroke before it is forwarded to the actual control.
This can be useful if you want to perform your own actions, before the actual control gets them.

// KeyDown event of some control
private void SomeControl_KeyDown(object sender, KeyEventArgs e)
{
    // 1. Event is called directly after the key stroke
 
    // If the user hits Enter, we catch the
    // event and do our own things
    if (e.KeyCode == Keys.Enter)
    {
        // Suppress key stroke, so that
        // the control don't receives it
        e.SuppressKeyPress = true;
 
        // Perform something important...
    }
}
 
// KeyPress event of some control
private void SomeControl_KeyPress(object sender, KeyPressEventArgs e)
{
    // 2. Event is called during the key stroke
}
 
// KeyUp event of some control
private void SomeControl_KeyUp(object sender, KeyEventArgs e)
{
    // 3. Event is called after the key stroke  
}
Snippet Details




Sorry folks, comments have been deactivated for now due to the large amount of spam.

Please try to post your questions or problems on a related programming board, a suitable mailing list, a programming chat-room,
or use a QA website like stackoverflow because I'm usually too busy to answer any mails related
to my code snippets. Therefore please just mail me if you found a serious bug... Thank you!


Older comments:

None.