C#: как сделать нажатие enter в текстовом поле триггером кнопки, но все же разрешить ярлыки, такие как "Ctrl+A", чтобы пройти?
извините за длинный заголовок, но я не мог придумать другого способа выразить это.
У меня есть это:
private void textBoxToSubmit_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
buttonSubmit_Click((object)sender, (EventArgs)e);
}
}
... для того, чтобы сделать нажатие enter в текстовом поле вызвать кнопку" Отправить". Тем не менее, это также предотвращает прохождение ярлыков. (не совсем уверен, что это имеет отношение к этому, может быть, только многоключевые комбо?)
ShortcutsEnabled имеет значение true.
спасибо заранее!
4 ответов
вы не можете использовать AcceptButton
в окне свойств форм? Это задает поведение по умолчанию для Enter пресс-ключ, но вы все еще можете использовать другие сочетания.
Если вы хотите, чтобы return запускал действие только тогда, когда пользователь находится в текстовом поле, вы можете назначить нужную кнопку 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
}
вы можете использовать нажатие клавиши вместо KeyUp или KeyDown его более эффективным и вот как обращаться
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Enter)
{
e.Handled = true;
button1.PerformClick();
}
}
надеюсь, что он работает
вам не нужен код на стороне клиента, если это ASP.NET - ... Пример ниже-поле ввода boostrap с кнопкой поиска со значком fontawesome.
вы увидите, что вместо обычного тега с классом "input-group" я использовал ASP:Panel. Свойство DefaultButton, установленное на идентификатор моей кнопки, делает трюк.
в примере ниже, после ввода чего-то в текстовом поле ввода, вы просто нажмите 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>