Hello,
Si l'on regarde dans MSDN pour cette méthode, on trouve cette note :
Important :
L'appel à la méthode Clear ne supprime pas de handle de contrôle de la mémoire. Vous devez appeler explicitement la méthode Dispose pour éviter des fuites de mémoire.
On se demande à quoi peut bien servir le Clear alors...
Bref, il s'avère que je doit utiliser un FlawLayoutPanel pour y ajouter et supprimer des PicturesBox qui comme tout bon contrôle sont "Disposable".
Ma question est donc, que faut il vraiment faire pour bien purger le FlawLayoutPanel ?
ça ?
Ou ça ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 While MyFlawLayoutPanel.Controls.Count > 0 MyFlawLayoutPanel.Controls(0).Dispose() End While MyFlawLayoutPanel.Controls.Clear()
Ou je ne sais quoi d'autre...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 While MyFlawLayoutPanel.Controls.Count > 0 Dim Ctrl As Control Ctrl = MyFlawLayoutPanel.Controls(0) MyFlawLayoutPanel.Controls.Remove(Ctrl) Ctrl.Dispose() End While MyFlawLayoutPanel.Controls.Clear()
Rq : le For Each est à bannir quand on ne peut pas faire de supression dans un For Each, de plus le Dispose semble supprimer le controle de la collection.
Bon c'est barbar je le reconnais, mais je suis un peu dans le flou sur ce coup là. Si qq c'est déjà retrouvé confronter à ce pb a un trouvé une solution efficasse je suis preneur !!!
Merci
Partager