KeyPressed在文本框中无法正常工作

时间:2015-03-12 18:58:24

标签: c#-4.0 key

我试图让下面的代码工作,但无济于事。

我必须创建一个登录窗口,除了我想要的Log in按钮,在密码文本框中按Enter键,结果是相同的。 C#2010。

private void button1_Click(object sender, EventArgs e)
        {
            int ok=0;
            if (textBox1.Text == "administrator" && textBox2.Text == "administrator")
            {
                ok = 1;
                this.Hide();
                Admin admin = new Admin();
                admin.ShowDialog();
            }
            if (textBox1.Text == "jucator" && textBox2.Text == "jucator")
            {
                ok = 1;
                this.Hide();
            }
            if (ok == 0)
            {
                label2.Text = "nume user sau parola incorecta";
                label2.Visible = true;
            }

        }
        private void textBox2_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                button1_Click(this, new EventArgs());
            }
        }

1 个答案:

答案 0 :(得分:-1)

您应该使用 KeyUp 事件在您的情况下,它更可靠。 然后检查按下的键。 e.g:

    private void textBox2_KeyUp(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Enter)
        {
            //DoLogin... in your case it would be 
            button1_Click(null,null);
            e.Handled = true;
        }
        else
        {
            e.Handled = false;
        }
    }

旁注:我真的不鼓励你使用登录方法,将字符串与硬编码字符串进行比较实际上是一种浪费,特别是在你有多个的环境中有更好的方案用户否则您为什么需要登录?