好的,这里举个例子:
- 我有UserControl A、UserControl B、UserControl C和一个Windows表单。
- 只有UserControl A会启动这个Windows表单。
- UserControl C有[下一步]和[返回]按钮。
- 假设,UserControl A被声明了一个事件处理程序。在UserControl A中的一个函数将实际上引发事件调用,以执行UserControl C中的一个函数。
- 所以,在UserControl C中,我必须添加
" UserControlA.OneFunction += this.UserControlC_Function;"
- 如果我在UserControl C中点击下一步按钮,它将销毁UserControl A并添加新的UserControl B到Windows表单中。但我从未手动删除此事件处理程序。
UserControl A中的一个函数是调用者(事件被声明的地方)。
UserControl C中的一个函数是监听器。
所以,这些是我的问题:
- 在UserControl A被销毁之前,我是否应该手动移除处理程序?
- 这个User Control A自动销毁会自动删除之前声明的处理程序吗?
- 我应该在哪里添加这个?
" UserControlA.OneFunction -= this.UserControlC_Function;"