Подтвердить что ты не робот

С#: Как сделать нажатие на ввод в текстовое поле вызывает кнопку, но все же разрешить ярлыки, такие как "Ctrl + A", чтобы пройти?

Извините за длинный заголовок, но я не мог придумать другого способа его выразить.

У меня есть это:

    private void textBoxToSubmit_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
        {
            buttonSubmit_Click((object)sender, (EventArgs)e);
        }
    }

... чтобы нажать клавишу ввода в текстовом поле, нажмите кнопку "отправить". Однако это также препятствует прохождению ярлыков. (не совсем уверен, что это с этим связано, может быть, только с несколькими ключами?)

ShortcutsEnabled установлен в значение true.

Спасибо заранее!

Джонатан

4b9b3361

Ответ 1

Не можете ли вы использовать AcceptButton для окна свойств форм? Это задает поведение по умолчанию для нажатия клавиши "Enter", но вы все еще можете использовать другие ярлыки.

Ответ 2

Если вы хотите, чтобы возвращаемое действие вызывало действие только в том случае, если пользователь находится в текстовом поле, вы можете назначить нужную кнопку для элемента управления 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
    }

Ответ 3

Вы можете использовать KeyPress вместо KeyUp или KeyDown более эффективно и здесь, как обращаться с

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == (char)Keys.Enter)
        {
            e.Handled = true;
            button1.PerformClick();
        }
    }

надеюсь, что он работает

Ответ 4

Вам не нужен код на стороне клиента, если это ASP.NET. Нижеприведенный пример представляет собой окно ввода буфера с кнопкой поиска со значком font-size.

Вы увидите, что вместо использования регулярного <div> с классом "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>