フォームの任意の場所で入力キーを押して、送信ボタンイベントを発生させるにはどうすればよいですか?
フォームのAcceptButtonプロパティをフォーム上のボタンの1つに設定すると、デフォルトでその動作が得られます。
それ以外の場合は、フォームでKeyPreviewプロパティをTrueに設定し、KeyDownイベントを処理します。 Enterキーを確認して、必要なアクションを実行できます。
フォームのプロパティでボタンを「AcceptButton」として指定すると、フォーム上の「Enter」キー押下をキャッチし、そのコントロールにルーティングできます。
このMSDNの記事 を参照し、概説されているいくつかの例外(複数行のテキストボックスなど)に注意してください。
private void textBox_KeyDown(object sender, KeyEventArgs e) {
if (e.KeyCode == Keys.Enter){
button.PerformClick();
}
}
前述のように、フォームのAcceptButtonプロパティをボタンの1つに設定し、そのボタンのDialogResultプロパティをDialogResult.OKに順番に設定します発信者がダイアログが受け入れられたか、却下されたかを知るために。
テキストボックスのKeyUpイベントにサブスクライブできます。
private void txtInput_KeyUp(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Enter)
DoSomething();
}
フォームには、キー押下を傍受するために使用できる KeyPreview プロパティがあります。
フォームのKeyPreview属性をTrueに設定し、フォームレベルでKeyPressイベントを使用してEnterキーを検出します。検出時に、「送信」ボタンに使用するコードを呼び出します。
単に使用する
this.Form.DefaultButton = MyButton.UniqueID;
**「MyButton」の代わりにボタンIDを入力します。
if (e.KeyCode.ToString() == "Return")
{
//do something
}