检测输入键C#

检测输入键C#,c#,keydown,textchanged,C#,Keydown,Textchanged,我有以下代码,按下enter/return时不显示MessageBox 对于任何其他键(即字母/数字),MessageBox显示False private void cbServer_TextChanged(object sender, EventArgs e) { if (enterPressed) { MessageBox.Show("Enter pressed"); } else MessageBox.Show("False"

我有以下代码,按下enter/return时不显示MessageBox

对于任何其他键(即字母/数字),MessageBox显示False

private void cbServer_TextChanged(object sender, EventArgs e)
{
    if (enterPressed)
    {
        MessageBox.Show("Enter pressed");
    }
    else
        MessageBox.Show("False");
}

private void cbServer_Keydown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Return)
    {
        enterPressed = true;
        MessageBox.Show("Enter presssed: " + enterPressed);

    }
    else
        enterPressed = false;
}
有什么想法吗


编辑:在上面的代码中,我认为问题出在_键下,所以我只发布了它。

在表单设计器类(formname.designer.cs)中添加以下内容:

this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Login_KeyPress);
并将此代码添加到主干代码(formname.cs):


这是因为当您按Enter
TextChanged
时不会触发事件

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

使用PreviewKeyDown事件检测在文本框或输入中显示之前的任何键

消息框如何显示false。我也看不出来。你试过调试吗?您应该使用OEMReturn或它是什么?cbServer是什么类型的控件?组合框?是wpf还是winforms应用程序?事件处理程序连接到哪个控件?cbServer?尝试将其附加到表单Instedit还处理Escape键以关闭表单,我认为它可能有用this.cbServer.KeyPress+=new System.Windows.Forms.KeyPressEventHandler(this.cbServer\u KeyPress);这已经在designer.cs文件中…很抱歉,我看到使用的是按键而不是按键向下。。我将尝试使用它,感谢您的完整性,您可以键入“if(e.KeyChar==(char)Keys.Enter)”,我认为这看起来很好,可以在PreviewKeyDown中找到一个“e.Key”选项
void cbServer_PreviewKeyDown(object sender, System.Windows.Forms.PreviewKeyDownEventArgs e)
    {

        // Check if User Presses Enter
        if (e.KeyCode == System.Windows.Forms.Keys.Return)
        {
            // Here: user pressed ENTER key

        }
        else
        {
            // Here: user did not press ENTER key
        }
    }
void cbServer_PreviewKeyDown(object sender, System.Windows.Forms.PreviewKeyDownEventArgs e)
    {

        // Check if User Presses Enter
        if (e.KeyCode == System.Windows.Forms.Keys.Return)
        {
            // Here: user pressed ENTER key

        }
        else
        {
            // Here: user did not press ENTER key
        }
    }