我想分离自定义事件但无法分离。下面我使用 -=
来分离事件。我假设此后,不应调用 TextChanged2
方法,因为我已取消注册该事件。我的理解有误吗?
public delegate void TextChangedEventHandler1(object sender, TextBoxargs ta);
public event TextChangedEventHandler1 TextChanged1;
private void textBox1_TextChanged(object sender, EventArgs e)
{
this.TextChanged1 -= new TextChangedEventHandler1(TextChanged2);
TextChanged2(sender, e);
}
public void TextChanged2(object sender, EventArgs e)
{
textBox1.Text = textBox1.Text.ToUpper();
}
最佳答案
你做的是对的。但是使用下面的代码行,您可以分离事件处理程序。
this.TextChanged1 -= new TextChangedEventHandler1(TextChanged2);
但是在第二行你直接调用了函数,所以它调用了textchange2函数:
TextChanged2(sender, e);
关于C# 事件和委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3004896/