如何阻止按钮窃取我的按键事件?

时间:2013-06-04 17:40:26

标签: c# events button keypress

我有一个按钮,一直在窃取我的按键事件。我该如何覆盖它?我希望在焦点位于表单上时单击输入时运行方法,但按钮会将其窃取。

2 个答案:

答案 0 :(得分:0)

处理表格中的KeyDown事件:

private void Form1_KeyDown(Object sender, KeyEventArgs e)
{
    if ((e.KeyCode & Keys.Enter) == Keys.Enter)
    {
        //do something
        e.Handled = true;
    }
    else
        base.OnKeyDown(e);
}

答案 1 :(得分:0)

Buttons 窃取KeyPress事件,他们只“窃取Enter密钥。所以你可以这样做:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    if (keyData == Keys.Enter)
    {
        processYourKey( keyData);
        return false;                 // do not steal!
    }
    processYourKey( keyData);
    return base.ProcessCmdKey(ref msg, keyData);
}