Добавление событий в WinForms? - PullRequest
4 голосов
/ 28 мая 2010

У меня есть TextBox в WinForm, и я хочу выполнять некоторый код каждый раз, когда кто-то нажимает клавишу внутри этого TextBox. Я просматриваю меню свойств событий и вижу событие KeyDown, но не знаю, как добавить к нему код.

Ответы [ 5 ]

14 голосов
/ 28 мая 2010

Вам нужно добавить обработчик события для этого события. Поэтому в меню свойств дважды щелкните поле рядом с событием KeyDown, и Visual Studio создаст для вас обработчик события. Это будет выглядеть примерно так:

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
    // enter your code here
}

Вы также можете подписаться на события самостоятельно, не используя окно «Свойства». Например, в конструкторе формы:

textBox1.KeyDown += HandleTextBoxKeyDownEvent;

А затем реализовать обработчик событий:

private void HandleTextBoxKeyDownEvent(object sender, KeyEventArgs e)
{
    // enter your code here
}
3 голосов
/ 28 мая 2010

В этих ответах Visual Studio будет генерировать событие и связывать его за кулисами в файле Designer.cs.

Если вы хотите знать, как связывать события самостоятельно, это выглядит следующим образом.

MyTextBox.KeyDown += new KeyEventHandler(MyKeyDownFunction)

private function MyKeyDownFunction(object sender, KeyEventArgs e) {
    // your code
}

Если все сделано таким образом, часть new KeyEventHandler() является необязательной. Вы также можете использовать лямбды, чтобы избежать стандартного кода.

MyTextBox.KeyDown += (s, e) => {
    // s is the sender object, e is the args
}
1 голос
/ 28 мая 2010

Дважды щелкните текстовое поле рядом с ним.

1 голос
/ 28 мая 2010

Я предполагаю, что вы находитесь в Visual Studio. Один из способов - дважды щелкнуть пустое текстовое поле справа от события KeyDown: VS сгенерирует код для вас.

0 голосов
/ 28 мая 2010

Вам нужно добавить обработчик к событию.

Дважды щелкните событие KeyPress в окне свойств текстового поля, чтобы Visual Studio сгенерировала обработчик событий в файле кода.
Затем вы можете поместить любой код в функцию обработчика событий. Вы можете проверить, какая клавиша была нажата, написав e.KeyCode.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...