我想分离自定义事件,但无法分离。在下面,我正在使用-=
分离事件。我假设在此之后,由于我未注册事件,因此不应调用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# - C#事件和委托(delegate),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3004896/