Search code examples
c#eventsfocusonkeypress

Key down event affected by buttons


I'm new around here and i have a little problems with a C# application. I want to capture the key down event. This wasn't a problem at first but after i added some buttons to the form, the key down event of the form ignores the arrow keys and moves the focus from one button to the next.(The key up event works) Is there a way to stop this and make them do something else when i hold the arrow keys?


Solution

  • Set the KeyPreview property on the Form to true. That will allow the form to see the keydown event in addition to the child controls.

    Add this to your Form ...

    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
        if (keyData.Equals(Keys.Right))
        {
            MessageBox.Show("Right Key Pressed!");
        }
    
        return base.ProcessCmdKey(ref msg, keyData);
    }