C#:如何在文本框中按下输入触发按钮,但仍允许“Ctrl + A”等快捷方式通过?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#:如何在文本框中按下输入触发按钮,但仍允许“Ctrl + A”等快捷方式通过?相关的知识,希望对你有一定的参考价值。
很抱歉很长的标题,但我想不出另一种说法。
我有这个:
private void textBoxToSubmit_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
buttonSubmit_Click((object)sender, (EventArgs)e);
}
}
...为了在文本框中按下输入,触发“提交”按钮。但是,这也可以防止捷径通过。 (不太确定它与它有什么关系,也许只有多键组合?)
ShortcutsEnabled设置为true。
提前致谢!
答案
你能不能在表格属性窗口中使用AcceptButton
?这将设置按Enter键的默认行为,但您仍然可以使用其他快捷方式。
另一答案
如果希望返回仅在用户位于文本框中时触发操作,则可以将所需按钮分配给AcceptButton控件,如下所示。
private void textBox_Enter(object sender, EventArgs e)
{
ActiveForm.AcceptButton = Button1; // Button1 will be 'clicked' when user presses return
}
private void textBox_Leave(object sender, EventArgs e)
{
ActiveForm.AcceptButton = null; // remove "return" button behavior
}
另一答案
您可以使用KeyPress而不是KeyUp或KeyDown,它更有效,这里是如何处理
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Enter)
{
e.Handled = true;
button1.PerformClick();
}
}
希望它有效
另一答案
如果这样做是ASP.NET,则不需要任何客户端代码。下面的例子是一个带有一个带有fontawesome图标的搜索按钮的boostrap输入框。
您将看到,使用带有“输入组”类的常规<div>标签代替我使用了asp:Panel。将DefaultButton属性设置为我的按钮的id,就可以了。
在下面的示例中,在输入文本框中键入内容后,您只需按Enter键即可生成提交内容。
<asp:Panel DefaultButton="btnblogsearch" runat="server" CssClass="input-group blogsearch">
<asp:TextBox ID="txtSearchWords" CssClass="form-control" runat="server" Width="100%" Placeholder="Search for..."></asp:TextBox>
<span class="input-group-btn">
<asp:LinkButton ID="btnblogsearch" runat="server" CssClass="btn btn-default"><i class="fa fa-search"></i></asp:LinkButton>
</span></asp:Panel>
以上是关于C#:如何在文本框中按下输入触发按钮,但仍允许“Ctrl + A”等快捷方式通过?的主要内容,如果未能解决你的问题,请参考以下文章