按Enter键时采取的操作。但没有任何反应。没有错误

时间:2014-01-10 00:09:12

标签: c# enter

    private void button1_Click(object sender, EventArgs e)
    {   
        DialogResult dResult;

        dResult = MessageBox.Show("You have entered: " + textBox1.Text, "Message Box Info", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Information);

        label1.Text = "You clicked " + dResult.ToString();
    }

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

这是我的代码,用于查看是否在文本框中按了回车键,我希望它在按下回车键时单击按钮。我运行程序,没有任何反应。我是C#的新手,你可以说。任何帮助或评论都会有所帮助。 提前谢谢。

2 个答案:

答案 0 :(得分:3)

您可以使用共享方法:

public void SharedMethod()
{
    DialogResult dResult;

    dResult = MessageBox.Show("You have entered: " + textBox1.Text, "Message Box Info", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Information);

    label1.Text = "You clicked " + dResult.ToString();
}

private void button1_Click(object sender, EventArgs e)
{   
    SharedMethod();
}

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
        SharedMethod();
    }
}

答案 1 :(得分:1)

你绝对应该按照pcnThird的方式重构你的代码,但是我在一个空的WinForms应用程序中重新创建了你的代码,它运行得很好,即使传递了KeyEventArgs.Empty

你得到它的方式,代码应该运行。

我怀疑您的KeyDown事件实际上并未附加到textBox1_KeyDown

在设计时检查您的属性窗口,确保它实际附加。

enter image description here

或暂时,在表单的构造函数中键入以下内容:

this.textBox1.KeyDown += new KeyEventHandler(this.textBox1_KeyDown);