web-dev-qa-db-ja.com

Windowsフォーム-キーを押して送信ボタンをアクティブにしますか?

フォームの任意の場所で入力キーを押して、送信ボタンイベントを発生させるにはどうすればよいですか?

82
FlySwat

フォームのAcceptButtonプロパティをフォーム上のボタンの1つに設定すると、デフォルトでその動作が得られます。

それ以外の場合は、フォームでKeyPreviewプロパティをTrueに設定し、KeyDownイベントを処理します。 Enterキーを確認して、必要なアクションを実行できます。

184
Matt Hamilton

フォームのプロパティでボタンを「AcceptButton」として指定すると、フォーム上の「Enter」キー押下をキャッチし、そのコントロールにルーティングできます。

このMSDNの記事 を参照し、概説されているいくつかの例外(複数行のテキストボックスなど)に注意してください。

20
bouvard
private void textBox_KeyDown(object sender, KeyEventArgs e) {
    if (e.KeyCode == Keys.Enter){
        button.PerformClick();
    }
}
19
ruvi

前述のように、フォームのAcceptButtonプロパティをボタンの1つに設定し、そのボタンのDialogResultプロパティをDialogResult.OKに順番に設定します発信者がダイアログが受け入れられたか、却下されたかを知るために。

9
Sorin Comanescu

テキストボックスのKeyUpイベントにサブスクライブできます。

private void txtInput_KeyUp(object sender, KeyEventArgs e)
{

    if(e.KeyCode == Keys.Enter)
       DoSomething();

}
6
sanjeev

フォームには、キー押下を傍受するために使用できる KeyPreview プロパティがあります。

2
itsmatt

フォームのKeyPreview属性をTrueに設定し、フォームレベルでKeyPressイベントを使用してEnterキーを検出します。検出時に、「送信」ボタンに使用するコードを呼び出します。

0
Bill

単に使用する

this.Form.DefaultButton = MyButton.UniqueID;  

**「MyButton」の代わりにボタンIDを入力します。

  if (e.KeyCode.ToString() == "Return")
  { 
      //do something
  }
0
BenW