日期:2014-05-18  浏览次数:20953 次

请问,KeyDown事件
private void button1_KeyDown(object sender, KeyEventArgs e)
  {
  if(e.KeyCode == Keys.Enter)
  (sender as Button).BackColor = Color.Red;  
  }

button1的KeyDown事件,我先随意点一下button1按钮,然后,按Enter键,为什么没有反应呢,背景色没有变化呢?

------解决方案--------------------
C# code

private void button1_Click(object sender, EventArgs e)
{
    //去除按钮响应回车事件,保留按钮点击事件(有点山寨)
    if(e.ToString() != "System.EventArgs")
    MessageBox.Show("点击按钮才有效果");
}

------解决方案--------------------
button获得焦点后,enter是触发click事件
------解决方案--------------------
探讨

这样处理一下 就可以响应按钮回车,但是button1_Click事件里面的还是会执行
C# code
bool enterkey;
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
enterkey = false;
i……