Relativ einfaches Problem.Wie kann man ein Steuerelement aus dem Speicher in VB.Net entfernen?
Ich habe ein Panel mit einigen Textfeldern darauf, alle dynamisch erstellt. Der Benutzer füllt einige der Textfelder aus und schließt dann das Fenster.
Jetzt im Code verwende ich die Linie;
Me.Pnl_Main.Controls.Clear()
und das funktioniert gut, die Panel-Inhalte sind "entfernt".
Das Problem besteht darin, dass wenn die Textfelder für den gleichen Zweck neu erstellt werden, sie immer noch die Werte enthalten, die sie zuvor hatten.
Und leider für mich, die meisten der Benutzeroberfläche ist so erstellt, was zwangsläufig zu einem Speicherverlust führt.
Also meine Frage ist, gibt es eine ordnungsgemäße Möglichkeit, eine Steuerung vollständig aus dem Speicher zu entfernen? Oder muss ich eine Routine ausführen, um alle Textwerte auf Nothing zu setzen?
Vielen Dank im Voraus.
Ich denke, das Problem besteht darin, dass Verweise auf die Textfelder, die Sie erstellt haben, immer noch irgendwo vorhanden ist, nachdem Sie '.Clear()' ausgeführt haben. Ich glaube nicht, dass Sie ein Speicherverlustproblem haben, weil Sie immer die gleichen Instanzen von Textfeldern verwenden (deshalb sehen Sie den vorherigen Text). Natürlich werden Textkästen außerhalb des Formulars referenziert, dann ist ein Lecken möglich. Können Sie einen Code zeigen, wie Sie Textfelder erstellen und dem Panel hinzufügen? – Fabio
Nach 'Me.Pnl_Main.Controls.Clear()' können Sie die Textbox Variable auf nichts setzen. –
Die Textfelder sind eigentlich Teil eines Benutzersteuerelements, das ich gemacht habe (auf diese Weise spare ich Zeit beim dynamischen Erstellen großer Mengen von Steuerelementen). –