2012-08-04 86 views
10

基本上,我希望能够在按下ENTER键时触发事件。我已经试过了:如何知道何时在文本框中按下回车键?

private void input_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.Equals("{ENTER}")) 
     { 
      MessageBox.Show("Pressed enter."); 
     } 
    } 

但是MessageBox从不出现。我怎样才能做到这一点?

+6

在KeyUp上执行此操作可能是一个好主意(取决于您的情况)。 KeyUp每次释放一个密钥时会被调用一次,但是当key被关闭时keydown被不断调用。 – 2012-08-04 05:32:55

回答

19

给这个一杆...

private void input_KeyDown(object sender, KeyEventArgs e) 
{       
    if(e.KeyData == Keys.Enter) 
    { 
     MessageBox.Show("Pressed enter."); 
    }    
} 
+0

谢谢你,这非常有用,足以让我找到自己的实际语法。我的语法是:if(e.Key == Key.Enter)//使用System.Windows.Input – user2010136 2016-07-28 22:04:38

0

你也可以这样做:

private void input_KeyDown(object sender, KeyEventArgs e) 
    {       
    if(e.KeyCode== Keys.Enter) 
    { 
     //Your business logic here. 
    }    
    } 

KeyCode VS KeyData唯一的区别是,KeyCode可以检测KeyCode修饰符组合(例如CTRL ,Shift + A),你不需要在这里。

相关问题