按文本框中的Enter键并执行按钮命令

我想按Enter键执行搜索按钮后面的代码。 我有一个Accept Button属性到我的搜索按钮。 但是,当我将我的按钮设置为不可见时,我的搜索不会执行。

我希望能够在我的文本框中按Enter键并在不可见的情况下执行我的按钮。 任何建议都会很棒! 下面是我在KeyDown事件中的代码的一次尝试

if (e.KeyCode == Keys.Enter) { buttonSearch_Click((object)sender, (EventArgs)e); } 

您可以注册到文本框的KeyDown-Event,查看按下的键是否为Enter ,然后执行按钮的EventHandler:

 private void buttonTest_Click(object sender, EventArgs e) { MessageBox.Show("Hello World"); } private void textBoxTest_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { buttonTest_Click(this, new EventArgs()); } } 

或者,您可以设置表单的.AcceptButton属性。 Enter将自动创建一个click事件。

 this.AcceptButton = this.buttonSearch; 

由于每个人都覆盖了KeyDown答案,如何在按钮上使用IsDefault

您可以阅读本技巧文章,了解快速操作方法及其作用: http : //www.codeproject.com/Tips/665886/Button-Tip-IsDefault-IsCancel-and-other-usability

您可以使用TextBox控件的Hanle KeyDown事件

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

它甚至按钮Visible属性设置为False

如果您只是按Enter键时按下按钮怎么样?

 private void textbox1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { buttonSearch.PerformClick(); } 

WPF应用程序中此代码运行良好

 private void txt1_KeyDown(object sender, KeyEventArgs e) { if (Keyboard.IsKeyDown(Key.Enter) ) { Button_Click(this, new RoutedEventArgs()); } } 

你去吧

 private void YurTextBox_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { YourButton_Click(this, new EventArgs()); } } 
  private void textbox1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { //cod for run } } private void buttonSearch_Click(object sender, EventArgs e) { textbox1_KeyDown(sender, new KeyEventArgs(Keys.Enter)); }