[英]Press enter in textbox to and execute button command
我想通过按Enter来执行搜索按钮后面的代码。 我的搜索按钮有接受按钮属性。 但是,当我将按钮设置为不可见时,我的搜索不会执行。
我希望能够在我的文本框中按Enter 键并在按钮不可见时执行我的按钮。 任何建议都会很棒! 下面是我在 KeyDown 事件中的代码的一次尝试
if (e.KeyCode == Keys.Enter)
{
buttonSearch_Click((object)sender, (EventArgs)e);
}
可以注册到Textbox的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 会自动创建一个点击事件。
this.AcceptButton = this.buttonSearch;
您可以处理TextBox
控件的 keydown 事件。
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode==Keys.Enter)
buttonSearch_Click(sender,e);
}
即使按钮Visible
属性设置为false
既然每个人都涵盖了KeyDown
答案,那么在按钮上使用IsDefault
怎么样?
您可以阅读此提示以获取快速操作方法及其功能: http : //www.codeproject.com/Tips/665886/Button-Tip-IsDefault-IsCancel-and-other-usability
这是链接文章中的一个示例:
<Button IsDefault = "true"
Click = "SaveClicked"
Content = "Save" ... />
'''
如果您只是在按下 Enter 键时单击按钮,那该怎么办?
private void textbox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
buttonSearch.PerformClick();
}
在某些情况下,文本框不会处理回车键。 我认为可能是当您在表单上设置了接受按钮时。 在这种情况下,您应该使用textbox1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
而不是KeyDown
事件
private void jobNoToolStripTextBox_KeyPress_1(object sender, KeyPressEventArgs e)
{
if(e.KeyChar == Convert.ToChar( Keys.Enter))
{
searchJobNo();
}
}
有时你必须使用 Key Char class,对我来说也一样
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));
}
在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());
}
}
如果 buttonSearch 没有代码,并且唯一的操作是返回对话框结果,则:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
DialogResult = DialogResult.OK;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.