.NET TextBox - Обработка клавиши ввода - PullRequest
34 голосов
/ 24 августа 2010

Что, безусловно, является наилучшим способом выполнения действия, основанного на вводе пользователем клавиши Enter (Keys.Enter) в .NET TextBox, при условии владения вводом ключа, который приводит к подавлению клавиши Enter длясам TextBox (e.Handled = true)?

Для целей этого вопроса предположим, что желаемое поведение состоит не в нажатии кнопки по умолчанию на форме, а в какой-то другой пользовательской обработке, которая должна происходить.

Ответы [ 3 ]

50 голосов
/ 24 августа 2010

Добавьте событие нажатия клавиши и перехватите клавишу ввода

Программно это выглядит примерно так:

//add the handler to the textbox
this.textBox1.KeyPress += new System.Windows.Forms.KeyPressEventHandler(CheckEnterKeyPress);

Затем добавьте обработчик в коде ...

private void CheckEnterKeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
        if (e.KeyChar == (char)Keys.Return)

        {
           // Then Do your Thang
        }
}
18 голосов
/ 08 июня 2012

Чтобы связать функцию с событием нажатия клавиши текстового поля, добавьте следующий код в файл designer.cs формы:

 this.textbox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.OnKeyDownHandler);

Теперь определите функцию 'OnKeyDownHandler' в файле cs той же формы:

private void OnKeyDownHandler(object sender, KeyEventArgs e)
{

    if (e.KeyCode == Keys.Enter)
    {
       //enter key has been pressed
       // add your code
    }

}
6 голосов
/ 24 августа 2010

Вы можете добавить это в событие FormLoad:

textBox1.KeyPress += (sndr, ev) => 
{
    if (ev.KeyChar.Equals((char)13))
    {
        // call your method for action on enter
        ev.Handled = true; // suppress default handling
    }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...