use*_*562 2 c# events delegates
我想分离自定义事件但无法分离.下面我-=用来分离事件.我假设在此之后,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();
}
Run Code Online (Sandbox Code Playgroud)
你在做什么是正确的.但是使用以下代码行可以分离事件处理程序.
this.TextChanged1 -= new TextChangedEventHandler1(TextChanged2);
Run Code Online (Sandbox Code Playgroud)
但是在第二行你直接调用了函数,所以它调用了textchange2函数:
TextChanged2(sender, e);
Run Code Online (Sandbox Code Playgroud)