Как получить событие нажатия текстового поля? - PullRequest
0 голосов
/ 23 марта 2020

Как скопировать или продублировать другие элементы управления событиями? Я хочу использовать другие элементы управления в новых элементах управления. Допустим, у меня есть текстовые поля.

TextBox tbTemp = new TextBox ();
tbTemp.Keypress += new KeyPressEventHandler(some keypress); //I assigned some keypress event here & this works fine


TextBox tbNew = new TextBox ();//create new textbox and assign keypress events from existing textbox
tbNew.Keypress += tbTemp.Keypress; //This is not working. It says the event control.keypress can only appear on left hand side of +=

or

tbNew.Keypress += new KeyPressEventHandler(tbTemp.Keypress);//this is not working

Есть ли способ захвата других событий управления? Мне нужно захватить или дублировать событие нажатия клавиши tbTemp и назначить для нового TextBox (tbNew)

1 Ответ

0 голосов
/ 23 марта 2020

Я отправляю этот ответ, если ваш вопрос

«У меня много текстовых полей, но если какой-либо из« KeyPress »вызывает ошибку, я хочу, чтобы та же функция обрабатывала его».

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

// This is the function
private void OnKeyPress( object sender, KeyPressEventArgs e )
{
    // Your implementation.
}


// Your constructor or where your subscribe event.
void Constructor()
{
 // This will work
    tbTemp += new System.Windows.Forms.KeyPressEventHandler(OnKeyPress);

    tbNew += new System.Windows.Forms.KeyPressEventHandler(OnKeyPress);
}

Если это не отвечает на ваш вопрос, пожалуйста, отредактируйте и объясните, чего вы хотите достичь .

========

Ваш вопрос был

Мне нужно перехватить или дублировать tbTemp keypressEvent и назначить его новому TextBox (tbNew)

Каждый элемент управления имеет свое собственное событие KeyPress, вам не нужно его копировать (дублировать). Поэтому «дублирующее событие KeyPress» сбивает с толку.

Тогда я предполагаю, что вы не хотите «дублировать событие», а «подписываете одно и то же событие элементов управления на одну функцию».

Посмотрите на Понимание событий и обработчиков событий в C#

Это должно помочь объяснить ваш вопрос.

...