Steuerelement löschen

Hitman II

Mitglied
Folgende Ausgangslage:

Mein Programm erstellt während der Lauftzeit pictureBoxen (Mann, was hab ich Zeit aufgewendet, bis ich das mit dem this.Controls.Add(...) endlich rausgefunden habe :) ), und speichert sie in eine ArrayList.

Das Problem ist jetzt, das ich die Elemente auch während der Laufzeit wieder löschen möchte. ArrayList.Remove(), ArrayList.RemoveAt() und ArrayList[index] = null funktioniert nicht, bzw. die pictureBoxen sind immer noch da. Die Lösung ist wahrscheinlich trivial, aber ich bin erst am Anfang meiner Programmierkarriere und habe KEINE AHNUNG :)

Danke im voraus

this.Close();
 
Hi.

Wenn du sie nur aus dem Arraylist rausnimmst, sind sie ja noch immer in verwendung. Nur hast in der ArrayList keinen Verweis mehr aufs Control.
Deswegen wirds aber nicht aus dem GC gelöscht, da es eben noch einem Control zugewiesen ist.

Code:
Control c = (Control) myArrayList[i];
this.Controls.Remove(c);
myArrayList.Remove(c);

Control aus dem ArrayList holen, Control vom Form entfernen, Control aus ArrayList entfernen.

MfG,
Alex
 
Zurück