foreach findet nur die Hälfte der Controls

  • Themenstarter Themenstarter Izzy84
  • Beginndatum Beginndatum
Aufruf von Dispose gibt (sofern man den optionalen Parameter weglässt) nur unmanaged Ressourcen frei.
Stimmt.
Ein Control entfernt sich aus der ControlCollection des Parent-Controls, sobald seine Dispose-Methode aufgerufen wird. Es verschwindet in dem Sinne, dass es nicht mehr graphisch angezeigt wird. Das Objekt als solches ist aber noch so lange vorhanden, bis es der GC frisst.
Stimmen wir jetzt überein rd4eva? :-)
Izzy84, ist dein Problem gelöst?
 
Hi,

in einer foreach-Schleife kann man löschen, indem man die Liste der Controls kopiert.
Also so:

C#:
foreach(Control c in new List<Control>(Controls))
{
    if(*die Sonne scheint*)
        Controls.Remove(c);
}

</KlugScheisserMod>

Gruß
Col.Blake
 
Stimmt.
Ein Control entfernt sich aus der ControlCollection des Parent-Controls, sobald seine Dispose-Methode aufgerufen wird. Es verschwindet in dem Sinne, dass es nicht mehr graphisch angezeigt wird. Das Objekt als solches ist aber noch so lange vorhanden, bis es der GC frisst.
Stimmen wir jetzt überein rd4eva? :-)
Izzy84, ist dein Problem gelöst?

Jop, damit bin ich einverstanden. ;)
 
Hi,

in einer foreach-Schleife kann man löschen, indem man die Liste der Controls kopiert.
Also so:

C#:
foreach(Control c in new List<Control>(Controls))
{
    if(*die Sonne scheint*)
        Controls.Remove(c);
}

</KlugScheisserMod>

Gruß
Col.Blake

Würde ich aber nicht gerade als wahnsinnig performant erachten ;)
 
Kanns sein das du die PictureBoxen selbst erstellst?
Wenn ja, halt dir die erstellten in einer eigenen Liste und dispose die Controls einfach (da geht dann auch wieder foreach).
Dann auf deine eigene Liste einfach ein Clear zum schluss.
 
Zurück