按文本框中的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)); }