C#, Как я нажимаю кнопку ударом, Входят, пока текстовое поле фокусируется?

64
задан GEOCHET 26 September 2014 в 21:28
поделиться

3 ответа

Простая опция состоит в том, чтобы только установить AcceptButton форм на кнопку, которую Вы хотите нажатый (обычно "хорошо" и т.д.):

    TextBox tb = new TextBox();
    Button btn = new Button { Dock = DockStyle.Bottom };
    btn.Click += delegate { Debug.WriteLine("Submit: " + tb.Text); };
    Application.Run(new Form { AcceptButton = btn, Controls = { tb, btn } });

, Если это не опция, можно посмотреть на событие KeyDown и т.д., но это - больше работы...

    TextBox tb = new TextBox();
    Button btn = new Button { Dock = DockStyle.Bottom };
    btn.Click += delegate { Debug.WriteLine("Submit: " + tb.Text); };
    tb.KeyDown += (sender,args) => {
        if (args.KeyCode == Keys.Return)
        {
            btn.PerformClick();
        }
    };
    Application.Run(new Form { Controls = { tb, btn } });
80
ответ дан Marc Gravell 24 November 2019 в 15:42
поделиться

Обычный способ сделать это должно установить Form AcceptButton к кнопке, которую Вы хотите "нажатый". Можно сделать, это или в разработчике VS или в коде и эти AcceptButton может быть изменено в любое время.

Это может или не может быть применимо к Вашей ситуации, но я использовал это в сочетании с GotFocus события для различного TextBox es на моей форме для включения различного поведения на основе того, где пользовательский хит Входит. Например:

void TextBox1_GotFocus(object sender, EventArgs e)
{
    this.AcceptButton = ProcessTextBox1;
}

void TextBox2_GotFocus(object sender, EventArgs e)
{
    this.AcceptButton = ProcessTextBox2;
}

Одна вещь остерегаться при использовании этого метода состоит в том, что Вы не уезжаете эти AcceptButton набор к ProcessTextBox1, когда TextBox3 становится сфокусированным. Я рекомендовал бы использовать или LostFocus событие на TextBox es, которые устанавливают эти AcceptButton или создают GotFocus метод, что все средства управления, которые не используют определенное AcceptButton вызов.

34
ответ дан Jon Norton 24 November 2019 в 15:42
поделиться

Вы можете поймать его на событии нажатия клавиши http://www.itjungles.com/dotnet/c-how-to-easily-detect-enter-key-in-textbox-and-execute-a- method

0
ответ дан 24 November 2019 в 15:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: