Ich habe ein Formular, das ein Unterformular (mit ShowDialog
) öffnen kann. Ich möchte sicherstellen, dass das Unterformular richtig angeordnet wird, wenn das Hauptformular fertig ist. Ich habe versucht, das Unterformular zum components
Mitglied des Hauptformulars hinzuzufügen, aber im Moment habe ich eine ArgumentNullException
.
Ich weiß, ich kann die components
selbst instanziieren, aber ist das nicht ein bisschen gefährlich? Eines Tages werde ich eine Komponente in der Designer-Ansicht hinzufügen, und das wird die new Container()
Zeile in der Datei designer.cs erzeugen, und ich werde nie wissen, dass ich zwei Komponenten instanses um den Haufen laufen lasse.
Gibt es einen einfacheren Weg, um sicherzustellen, dass das Unterformular entsorgt wird?WinForm entsorgt ein Unterformular, wenn das Formular entsorgt wird
EDIT - zogen meine Lösung auf eine Antwort
Die Unter Form mehr als einmal geöffnet werden kann, mit verschiedene Daten. Ich möchte nicht jedes Mal, wenn ich es öffne, eine neue Instanz erstellen. –
Aber warum sind Sie besorgt, es dann zu entsorgen? Welche Ressourcen verwenden Sie darauf, die nach einem Show-Dialog-Aufruf nicht entfernt würden? – Spence
Nach ShowDialog wird das Formular nicht automatisch entsorgt. Auf diese Weise kann ich auf das DialogResult zugreifen (was der Grund dafür ist, es nicht automatisch zu entfernen), und ShowDialog es immer und immer wieder (weshalb ich es benutze). Ich möchte sicherstellen, dass das Unterformular entsorgt wird, wenn das Hauptformular entsorgt wird. –