Установить обработчик событий в качестве параметра - PullRequest
0 голосов
/ 13 июня 2018

Мне нужно сделать что-то вроде этого:

if ((sender as TextBox).Equals(TextBox1))
{
    TextBox2.TextChanged -= TextBox2_TextChanged;
    TextBox2.Text = TextBox1.Text;
    TextBox2.TextChanged -= TextBox2_TextChanged;
}
else if ((sender as TextBox).Equals(TextBox3))
{
    TextBox4.TextChanged -= TextBox4_TextChanged;
    TextBox4.Text = TextBox3.Text;
    TextBox4.TextChanged -= TextBox4_TextChanged;
}

Но у меня слишком много TextBox для оператора if-else, поэтому я хотел бы сделать что-то вроде этого:

public void My_function(TextBox textbox1, TextBox textbox2, string event_name)
{
    textbox2.TextChanged -= event_name;
    textbox2.Text = textbox1.Text;
    textbox2.TextChanged -= event_name;
}

Как я могу это сделать ???И можно ли вообще это сделать ???

1 Ответ

0 голосов
/ 13 июня 2018

вы можете использовать EventHandler MSDN

 private void textBox1_TextChanged(object sender, EventArgs e)
 {
      textBox1.Text = "hello";
 }

 public static void My_function(TextBox textbox1, EventHandler handler)
 {
    textbox1.TextChanged -= handler;
 }

, а для вызова функции просто выполните

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