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
writeSystem.EventHandler
?@SeM。我的问题是如何将事件作为函数参数发送。无论如何,我已经收到了回复。我已经第三次重复了,如果您将方法中的单词string
更改为System.EventHandler
,它会工作的。谢谢。这正是我需要的。