C# 将事件处理程序设置为参数

C# 将事件处理程序设置为参数,c#,events,C#,Events,我需要这样做: 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

我需要这样做:

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;
}
public void My_function(TextBox textbox1, TextBox textbox2, string event_name)
{
    textbox2.TextChanged -= event_name;
    textbox2.Text = textbox1.Text;
    textbox2.TextChanged -= event_name;
}
但是我有太多的文本框用于if-else语句,所以我想制作如下内容:

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;
}
public void My_function(TextBox textbox1, TextBox textbox2, string event_name)
{
    textbox2.TextChanged -= event_name;
    textbox2.Text = textbox1.Text;
    textbox2.TextChanged -= event_name;
}

我怎样才能做到这一点???我可以这样做吗?

您可以使用
EventHandler

要调用函数,只需执行以下操作

My_function(textBox1, textBox1_TextChanged);

如果您注意编译错误,它会说
error CS0029无法将类型“string”隐式转换为“System.EventHandler”
,所以您可以注意到,如果您将
string
更改为
EventHandler
,它应该可以工作。@SeM,我明白这一点。我的问题是如何做到这一点。我知道如果我使用字符串类型,我将有一个编译错误,而不是
string
write
System.EventHandler
?@SeM。我的问题是如何将事件作为函数参数发送。无论如何,我已经收到了回复。我已经第三次重复了,如果您将方法中的单词
string
更改为
System.EventHandler
,它会工作的。谢谢。这正是我需要的。