调用dispose时,不会处置用户控件

时间:2011-03-18 09:38:25

标签: c# .net dispose

我正在使用用户控制方式:

 Login = new MainMenu();
            Login.Parent = this;
            Login.Dock = DockStyle.Fill;
            Login.SelectionMade += new LoginS.SelectionMadeDelegate(menu_SelectionMade);
            Login.Show();

在某些时候,用户控件会触发一个事件,主窗体会在其上做出如下反应:

   login.SelectionMade -= this.login_SelectionMade;
                    login.Dispose();

但是,在检入调试器时,登录实例仍然不为null。为什么?它应该被处理我认为

1 个答案:

答案 0 :(得分:3)

调用对象上的dispose不会将其设置为null。 Dispose会清理Login控件中使用的所有资源。

您应该使用:

Login.Dispose();
Login = null;