を押して、検索ボタンの背後にあるコードを実行したい Enter。検索ボタンにAccept Buttonプロパティがあります。ただし、ボタンを非表示として配置すると、検索が実行されません。
押したい Enter テキストボックス内で、表示されていない間にボタンを実行します。どんな提案でも素晴らしいでしょう!以下は、KeyDownイベントでの私のコードの1つの試みです。
if (e.KeyCode == Keys.Enter)
{
buttonSearch_Click((object)sender, (EventArgs)e);
}
TextboxのKeyDown-Eventに登録できます。押されたキーが Enter 次に、ボタンのEventHandlerを実行します。
private void buttonTest_Click(object sender, EventArgs e)
{
MessageBox.Show("Hello World");
}
private void textBoxTest_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
buttonTest_Click(this, new EventArgs());
}
}
または、フォームの.AcceptButtonプロパティを設定できます。 Enterキーを押すと、クリックイベントが自動的に作成されます。
this.AcceptButton = this.buttonSearch;
誰もがKeyDown
の回答をカバーしているので、ボタンでIsDefault
を使用するのはどうですか?
このヒントは、簡単なハウツーとその機能について読むことができます。 http://www.codeproject.com/Tips/665886/Button-Tip-IsDefault-IsCancel-and-other-usability
TextBox
コントロールのkeydownイベントを処理できます。
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode==Keys.Enter)
buttonSearch_Click(sender,e);
}
ボタンVisible
プロパティがfalse
に設定されている場合でも機能します
Enterが押されたときにボタンをクリックするだけの場合はどうですか?
private void textbox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
buttonSearch.PerformClick();
}
ButtonSearchにコードがなく、アクションのみがダイアログ結果を返す場合:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
DialogResult = DialogResult.OK;
}
WPF
アプリでこのコードは完全に動作します
private void txt1_KeyDown(object sender, KeyEventArgs e)
{
if (Keyboard.IsKeyDown(Key.Enter) )
{
Button_Click(this, new RoutedEventArgs());
}
}
そこに行きます。
private void YurTextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
YourButton_Click(this, new EventArgs());
}
}