KeyPreview已经设置为true了之后,按下enter键keydown不响应,但会根据系统默认的响应方法(重复按下焦点所在button键)做出响应。
解决方法:
在Form类中添加函数:
protected override bool ProcessDialogKey(Keys keyData)
{
if (keyData == Keys.Enter)
{
return false;
}
else {
return base.ProcessDialogKey(keyData);
}
}
之后Keydown就会响应了,在里面写自己想让enter做的事:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
....
case Keys.Enter:
equal.PerformClick();
break;
}