Ich verwende die Benutzersteuerung folgendermaßen:
Login = new MainMenu();
Login.Parent = this;
Login.Dock = DockStyle.Fill;
Login.SelectionMade += new LoginS.SelectionMadeDelegate(menu_SelectionMade);
Login.Show();
Zu einem bestimmten Zeitpunkt löst das Benutzersteuerelement ein Ereignis aus, auf das das Hauptformular folgendermaßen reagiert:
login.SelectionMade -= this.login_SelectionMade;
login.Dispose();
Beim Einchecken im Debugger ist die Anmeldeinstanz jedoch immer noch nicht null. Warum? Es sollte entsorgt werden, denke ich
Antworten:
3 für die Antwort № 1Beim Aufruf von dispose für ein Objekt wird es nicht auf null gesetzt. Mit Dispose werden alle Ressourcen gelöscht, die im Login-Steuerelement verwendet werden.
Du solltest benutzen:
Login.Dispose();
Login = null;