如何检测是否在txtMessage_TextChanged()中按下了Enter?

时间:2014-03-07 17:02:23

标签: c# .net winforms

我想知道是否在

中按了Enter键
private void txtMessage_TextChanged(object sender, EventArgs e)
{

 // do something

}

但我不能这样做:

private void txtMessage_TextChanged(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
   if (e.KeyChar == (char)13)
   {
   // Then Enter key was pressed
   }              
}

由于txtMessage_TextChanged没有此重载。

有什么建议吗?谢谢!

3 个答案:

答案 0 :(得分:2)

您需要订阅实际捕获该信息的事件。

KeyPress事件在TextChanged之前触发,因此您可以使用bool来指示是否已按下Enter键。

bool enterKeyPressed = false;

private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{
    enterKeyPressed = (e.KeyChar == (char)Keys.Enter);
}

private void txtMessage_TextChanged(object sender, EventArgs e)
{
    if (enterKeyPressed)
    {
    }
}

答案 1 :(得分:1)

注册:

this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Login_KeyPress);

在该方法中,如果keychar == 13

,则设置一个布尔值或其他内容

答案 2 :(得分:0)

您可以使用按键事件来捕获输入键事件