44

を押して、検索ボタンの背後にあるコードを実行したいと思いEnterます。検索ボタンに Accept Button プロパティがあります。ただし、ボタンを非表示にすると、検索が実行されません。

Enterテキストボックス内を押して、ボタンが表示されていないときにボタンを実行できるようにしたい。どんな提案も素晴らしいでしょう!以下は、KeyDown イベントでの私のコードの 1 つの試みです。

if (e.KeyCode == Keys.Enter)
    {
        buttonSearch_Click((object)sender, (EventArgs)e);
    }
4

10 に答える 10

94

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());
    }
}
于 2013-11-14T10:51:04.967 に答える
17

または、フォームの .AcceptButton プロパティを設定することもできます。Enter を押すと、クリック イベントが自動的に作成されます。

this.AcceptButton = this.buttonSearch;
于 2015-05-22T21:17:21.707 に答える
3

コントロールの keydown イベントを処理できますTextBox

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
    if(e.KeyCode==Keys.Enter)
    buttonSearch_Click(sender,e);
}

ボタンのVisibleプロパティがに設定されている場合でも機能しますfalse

于 2013-11-14T10:52:47.883 に答える
2

Enter が押されたときにボタンをクリックするだけなら、これはどうですか?

private void textbox1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
        {
            buttonSearch.PerformClick();
        }
于 2016-06-24T18:17:06.480 に答える
0
    private void textbox1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
        {
            //cod for run
        }
    }

    private void buttonSearch_Click(object sender, EventArgs e)
    {
        textbox1_KeyDown(sender, new KeyEventArgs(Keys.Enter));
    }
于 2016-01-07T18:45:51.297 に答える