7 Stimmen

Unterschiedliches Verhalten der Dispose-Methode zwischen Windows Forms' Form und Textboxen

Wann immer ich die Dispose Methode auf einem Windows Forms-Formular (abgeleitet von System.Windows.Forms.Form), um es zu schließen, wird die Dispose Methode wird abgeschlossen, indem die Ressourcen freigegeben und das Formular entsorgt wird.

Ich habe Laufzeitobjekte wie Textboxen wie unten:

Textbox Tb = new Textbox();

Der Benutzer kann neue Textboxen dynamisch erstellen. Ich möchte, dass die Textfelder, die Daten enthalten, erhalten bleiben, und die, die leer sind, entfernt werden. Wenn ich die Dispose Methode auf die leeren Textfelder anwenden, sieht es zur Laufzeit so aus, als ob sie entsorgt werden, aber im Allgemeinen sind sie einfach unsichtbar.

Also:

  1. Was ist der Unterschied zwischen dem Aufruf der Dispose-Methode für Textfelder und für von Forms abgeleitete Klassen?

  2. Warum wird ein Formular beim Aufruf von z.B. Form1.Dispose(); und warum nicht Textfelder zur Laufzeit wie unten?

    if (tb.text=="")
        tb.Dispose();

1voto

MPelletier Punkte 15633

Soweit ich weiß, liegt das an den Eigentumsverhältnissen. Das Formular besitzt die Steuerelemente, so dass, wenn Sie die Steuerelemente zu entsorgen, gut, Sie müssen nur aktualisieren Sie es. Wenn Sie das Formular selbst zu entsorgen, es ist weg, nichts zu aktualisieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X