检测输入密钥C#

k1f*_*1f1 9 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");
}

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;
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

编辑:上面的代码,我认为问题是_Keydown,所以我只发布了.

Maz*_*ani 8

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

this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Login_KeyPress);
Run Code Online (Sandbox Code Playgroud)

并将此代码添加到骨干代码(formname.cs):

void Login_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == (char)13)
            MessageBox.Show("ENTER has been pressed!");
        else if (e.KeyChar == (char)27)
            this.Close();
    }
Run Code Online (Sandbox Code Playgroud)


Ren*_*iuz 6

这是因为当你按下Enter TextChanged事件时不会开火.