UserControl如何破坏自己?

时间:2009-04-11 03:44:27

标签: winforms

当用户点击窗口的某个部分时,我将UserControl添加到窗口的控件中。 UserControl有一个关闭按钮。我可以在UserControl的按钮处理程序中执行哪些操作来销毁UserControl?似乎没有.net类似于Win32 DestroyWindow调用,并且控件没有Close()方法。到目前为止,我有这个:

private void sbClose_Click(object sender, EventArgs e)
{
    Parent.Controls.Remove(this);
    this.Dispose();
}

并且,如果父母需要销毁控件,那么步骤是什么?这就是我到目前为止所做的:

    Controls.Remove(control);
    control.Dispose();

2 个答案:

答案 0 :(得分:6)

您正在使用垃圾收集的托管代码环境中工作 - 您可以执行强制要销毁的用户控件。

你需要做的就是可以做的就是从父母那里删除它,并确保没有剩余的引用。

这通常就足够了:

private void sbClose_Click(object sender, EventArgs e)
{
    Parent.Controls.Remove(this);
}

你唯一需要更多的时间就是如果你把事情与事件联系在一起,因为你也需要注销这些事件。

答案 1 :(得分:0)

控件不能自我毁灭。在让父母这样做的过程中,你走在了正确的轨道上。您可以让父对象或其他控件调用Dispose并删除对该控件的所有引用。以这种方式取消引用控件将允许GC清理。