gpt4 book ai didi

C# - 删除事件处理程序 - FormClosing 事件或 Dispose() 方法

转载 作者:可可西里 更新时间:2023-11-01 08:06:03 24 4
gpt4 key购买 nike

假设我通过 .ShowDialog() 方法打开了一个表单。

在某些时候,我将一些事件处理程序附加到表单上的一些控件。

例如

// Attach radio button event handlers.
this.rbLevel1.Click += new EventHandler(this.RadioButton_CheckedChanged);
this.rbLevel2.Click += new EventHandler(this.RadioButton_CheckedChanged);
this.rbLevel3.Click += new EventHandler(this.RadioButton_CheckedChanged);

当表单关闭时,我需要删除这些处理程序,对吗?

目前,我是在触发 FormClosing 事件时执行此操作。

例如

private void Foo_FormClosing(object sender, FormClosingEventArgs e)
{
// Detach radio button event handlers.
this.rbLevel1.Click -= new EventHandler(this.RadioButton_CheckedChanged);
this.rbLevel2.Click -= new EventHandler(this.RadioButton_CheckedChanged);
this.rbLevel3.Click -= new EventHandler(this.RadioButton_CheckedChanged);
}

但是,我看到了一些在 Dispose() 方法中删除了处理程序的示例。

是否有执行此操作的“最佳实践”方法?

(使用 C#、Winforms、.NET 2.0)

谢谢。

最佳答案

在这种情况下您不需要删除处理程序,因为表单及其按钮都没有被表单外部的代码引用,因此整个对象图将被垃圾收集。

关于C# - 删除事件处理程序 - FormClosing 事件或 Dispose() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2754347/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com