如何判断在TextBox中按下回车键的时间?

基本上,我希望能够在按下ENTER键时触发事件。 我已经尝试过了:

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

但MessageBox永远不会出现。 我怎样才能做到这一点?

给这个镜头……

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

要添加到@Willy David Jr回答:您还可以使用实际的密钥代码。

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

你实际上可以说

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

你也可以这样做:

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

KeyCodeKeyData的唯一区别在于KeyCode可以检测与KeyCode (例如CTRL,Shift + A)的修饰符组合,这里您不需要。

您可以使用Keypress事件。 如果您只是在寻找“Enter”按键,那么您可能不关心修改键(例如Shift和/或Ctrl),这就是大多数人使用KeyDown而不是Keypress的原因。 第二个好处是回答在实施任何其他答案之后几乎总是被问到的问题:“当我使用引用的代码时,为什么按”Enter“会发出蜂鸣声?” 这是因为需要处理Keypress事件。 通过使用Keypress,您可以在一个地方解决这两个问题:

 private void input_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)Keys.Enter) { // Your logic here.... e.Handled = true; //Handle the Keypress event (suppress the Beep) } }