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#的新手,你可以说。任何帮助或评论都会有所帮助。 提前谢谢。
答案 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
。
在设计时检查您的属性窗口,确保它实际附加。
或暂时,在表单的构造函数中键入以下内容:
this.textBox1.KeyDown += new KeyEventHandler(this.textBox1_KeyDown);