我想分离自定义事件,但无法分离。在下面,我正在使用-=分离事件。我假设在此之后,由于我未注册事件,因此不应调用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/

10-12 07:40