Я использую пользовательский контроль следующим образом:
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();
Однако при регистрации в отладчике экземпляр входа в систему все еще не равен нулю. Зачем? Надо утилизировать думаю