29

長いタイトルで申し訳ありませんが、別の言い方は考えられませんでした。

私はこれを持っています:

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

...テキストボックスでEnterキーを押すと、「送信」ボタンがトリガーされます。ただし、これによりショートカットが通過できなくなります。(それがそれと何の関係があるのか​​よくわかりません、多分マルチキーコンボだけですか?)

ShortcutsEnabledはtrueに設定されています。

前もって感謝します!

4

5 に答える 5

41

AcceptButtonフォームのプロパティウィンドウでを使用できませんか?これにより、キーを押すときのデフォルトの動作が設定されEnterますが、他のショートカットを使用することもできます。

于 2010-02-06T07:00:50.163 に答える
16

ユーザーがテキストボックスにいるときにのみリターンでアクションをトリガーする場合は、次のように、目的のボタンに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
    }
于 2013-12-16T18:04:51.063 に答える
14

KeyUpまたはKeyDownの代わりにKeyPressを使用すると、より効率的になります。処理方法は次のとおりです。

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

それがうまくいくことを願っています

于 2014-12-17T21:22:12.073 に答える
1

これを行うのがASP.NETの場合、クライアント側のコードは必要ありません。以下の例は、fontawesomeアイコンが付いた検索ボタンが付いたブーストラップ入力ボックスです。

「input-group」のクラスで通常の<div>タグを使用する代わりに、asp:Panelを使用したことがわかります。ボタンのIDに設定された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>
于 2017-04-02T07:49:09.907 に答える
0

https://stackoverflow.com/a/16350929/11860907

このリンクの回答に示されているように追加するe.SuppressKeyPress = true;と、発生する不快な音を抑えることができます。

于 2020-08-25T18:07:08.437 に答える