我想按 Enter 执行搜索按钮后面的代码。我有一个Accept Button属性到我的搜索按钮。但是,当我将我的按钮设置为不可见时,我的搜索不会执行。
我希望能够在我的文本框中按 Enter 并在不可见的情况下执行我的按钮。任何建议都会很棒!下面是我在KeyDown事件中的代码的一次尝试
if (e.KeyCode == Keys.Enter)
{
buttonSearch_Click((object)sender, (EventArgs)e);
}
答案 0 :(得分:56)
您可以注册到文本框的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());
}
}
答案 1 :(得分:15)
或者,您可以设置表单的.AcceptButton属性。 Enter将自动创建一个点击事件。
this.AcceptButton = this.buttonSearch;
答案 2 :(得分:3)
由于每个人都覆盖了KeyDown
个答案,如何在按钮上使用IsDefault
?
您可以阅读此提示,以获得快速操作方法及其功能:http://www.codeproject.com/Tips/665886/Button-Tip-IsDefault-IsCancel-and-other-usability
答案 3 :(得分:1)
您可以处理KeyDown
控件的TextBox
事件
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode==Keys.Enter)
buttonSearch_Click(sender,e);
}
It Works事件按钮Visible
属性设置为False
答案 4 :(得分:1)
如果您在按Enter键时单击按钮怎么样?
private void textbox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
buttonSearch.PerformClick();
}
答案 5 :(得分:0)
在WPF
个应用中此代码运行正常
private void txt1_KeyDown(object sender, KeyEventArgs e)
{
if (Keyboard.IsKeyDown(Key.Enter) )
{
Button_Click(this, new RoutedEventArgs());
}
}
答案 6 :(得分:0)
你去了。
private void YurTextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
YourButton_Click(this, new EventArgs());
}
}
答案 7 :(得分:0)
如果buttonSearch没有代码,而唯一的操作是返回对话框结果,则:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
DialogResult = DialogResult.OK;
}
答案 8 :(得分:0)
在某些情况下,文本框无法处理回车键。我认为可能是您在表单上设置了接受按钮时。在这种情况下,您应该使用KeyDown
textbox1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
事件
答案 9 :(得分:-1)
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));
}