删除(),清除()或处理()

时间:2010-02-06 15:55:13

标签: .net winforms

简单的问题......

我有控件,用户可以在运行时在我的表单上拖动。他们也可以删除它们......我应该在点击删除按钮时调用.Dispose();,还是应该执行panel1.Controls.Clear(Control);之类的操作? ......还是其他什么?

谢谢:)

巴尔

2 个答案:

答案 0 :(得分:5)

您应该按照Darin Dimitrov的回复中的描述从父控件集合中删除它,并调用Dispose:

panel.Controls.Remove(someControlInstance);
someControlInstance.Dispose();

完成后,应始终对实现IDisposable的对象调用Dispose,以便立即释放它们拥有的任何非托管资源。

答案 1 :(得分:2)

只需从面板中删除控件:

panel.Controls.Remove(someControlInstance);

一旦没有对它的引用,它将受到垃圾收集,非托管资源将被妥善处理。