68

我试过这段代码:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (Convert.ToInt32(e.KeyChar) == 13) 
    {
        MessageBox.Show(" Enter pressed ");
    }
}

还有这个:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == Convert.ToChar(Keys.Enter))
    {
        MessageBox.Show(" Enter pressed ");
    }
}

还有这个:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == Keys.Enter)
    {
        MessageBox.Show(" Enter pressed ");
    }
}

但他们没有工作......

当我写东西并按Enter时,它不起作用。它只突出显示我的文字。

4

14 回答 14

109

试试这个代码,可能会工作(假设是windows形式):

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

像这样注册事件:

this.textBox1.KeyPress += new 
System.Windows.Forms.KeyPressEventHandler(CheckEnter);
于 2012-09-07T12:34:51.997 回答
40

您必须在 keydown 事件中尝试此操作

这是代码:

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

更新 :

您也可以使用按键事件来做到这一点。

试试这个 :

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == Convert.ToChar(Keys.Return))
        {
            MessageBox.Show("Key pressed");
        }
    }
于 2012-09-07T12:44:53.647 回答
7
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)Keys.Enter)
    {
        MessageBox.Show("Enter Key Pressed");
    }
}

这使您可以选择所需的特定密钥,而无需找到密钥的 char 值。

于 2013-08-07T07:06:43.553 回答
4
private void textBoxKontant_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Return)
            {
                MessageBox.Show("Enter pressed");
            }
        }

截屏:

于 2014-07-27T18:42:48.830 回答
3

KeyChar 是在寻找一个整数值,所以需要进行如下转换:

    private void Form1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == Convert.ToInt16(Keys.Enter))
        {
            MessageBox.Show("Testing KeyPress");
        }
    }
于 2016-03-15T14:09:37.977 回答
3

您可以使用 Key_down 事件,而不是使用 Key_press 事件。双击此处后,您可以找到如下所示,它会自动显示此代码事件

private void textbox1_KeyDown(object sender, KeyEventArgs e)
    {

     }

现在解决的问题随心所欲地使用。

private void textbox1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
        {
            MessageBox.Show(" Enter pressed ");
        }
     }
于 2017-11-27T05:46:41.187 回答
2
private void TextBox1_KeyUp(object sender, KeyEventArgs e)
{
     if (e.KeyCode == Keys.Enter)
     {
         MessageBox.Show("Enter pressed");
     }
 }

为我工作。

于 2016-08-02T12:28:37.817 回答
0
private void Input_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Return)
        {
            MessageBox.Show("Enter pressed");
        }
    }

这对我有用。

于 2015-01-04T11:44:53.697 回答
0

您也可以使用按键事件来做到这一点。

 private void textBox1_EnterKeyPress(object sender, KeyEventArgs e)

 {

  if (e.KeyCode == Keys.Enter)
   {
     // some code what you wanna do
   }


}
于 2015-10-01T07:13:32.430 回答
0

对我来说,这是最好的解决方案:

private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyData == Keys.Enter)
    {
        MessageBox.Show("Enter key pressed");
    }
}

结果

于 2017-07-21T18:51:24.427 回答
0

请记住,

Keys.ReturnKeys.Enter不同

//Makes it easier to Type user and password and press Enter, 
//Rather than using the mouse to Click the Button all the time
    private void Txt_Password_KeyDown(object sender, KeyEventArgs e)
    {
        if(e.KeyCode == Keys.Return)
        {
            Btn_Login_Click(null, null);
        }
    }

希望这对某人有所帮助。

于 2017-10-14T12:27:05.963 回答
0
private void Ctrl_KeyUp(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
        this.SelectNextControl((Control)sender, true, true, true, true);
    }
}

选择所有需要的文本框;输入新的事件名称 Ctrl_KeyUp。

通过 BTNT TV 观看 YouTube: https ://www.bing.com/videos/searchq=c%23+how+to+move+to+next+textbox+after+enterkey&view=detail&mid=999E8CAFC15140E867C0999E8CAFC15140E867C0&FORM=VIRE

于 2019-11-06T00:45:25.053 回答
-1

您可以使用以下代码:

abc_KeyDown(abc, new KeyEventArgs(Keys.Enter));
于 2015-12-11T06:57:21.523 回答
-2

试试这个:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
        switch (e.Key.ToString())
        {
                case "Return":
                        MessageBox.Show(" Enter pressed ");
                        break;
         }
}
于 2012-09-07T12:35:08.650 回答