我有一个按钮,一直在窃取我的按键事件。我该如何覆盖它?我希望在焦点位于表单上时单击输入时运行方法,但按钮会将其窃取。
答案 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);
}