Suppresion des controles et libération de mémoire [Résolu]

Signaler
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
-
Messages postés
15137
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 novembre 2020
-
Bonjour,

Dans mon appli, je crée un certain nombre de contrôles (panel, label...) dans des contrôles précédemment créé.



'Exemple:
'Creation du FlowLayoutPanel (conteneur )

PanItemAdded = New FlowLayoutPanel()
With PanItemAdded
.Name = "PanItemAdded" & Index
.
.
.
.Tag = Index
End With

'ajout d'un gestionnaire d'événement
AddHandler PanItemAdded.Click, AddressOf PanItemAdded_Click
MyCollec_TabItems.Add(PanItemAdded)
PLCWave.PanelLineTab.Controls.Add(PanItemAdded)

'Puis création d'un panel dans le conteneur

Pan_Tab_Color = New Panel()
With Pan_Tab_Color
.Name = "Pan_Tab_Color" & Index
.
.
.
.Tag = Index
End With

'ajout d'un gestionnaire d'événement
AddHandler Pan_Tab_Color.Click, AddressOf PanItemAdded_Click
AddHandler Pan_Tab_Color.MouseDown, AddressOf Pan_Tab_Color_MouseDown
CType(PLCWave.PanelLineTab.Controls("PanItemAdded" & Index), FlowLayoutPanel).Controls.Add(Pan_Tab_Color)


Seulement voila, quand je souhaite le supprimer, je fais:


For Each ctrl In MyCollec_TabItems
ctrl.Dispose()
Next
MyCollec_TabItems.Clear()


Mais est-ce que cela supprime aussi les controles enfants? Et la libération de mémoire est-elle optimale?

Merci de votre expérience,

Jimy

5 réponses

Messages postés
14738
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
23 novembre 2020
148
- Mais est-ce que cela supprime aussi les controles enfants?
Je ne sais pas, dans un cadre d'assurance, tu pourrais faire une fonction récursive de libération des ressources (en utilisant la propriété "Controls" pour lister les controles enfants).

- Et la libération de mémoire est-elle optimale?
Oui, la méthode "Dispose" libère immédiatement les ressources consommées par l'objet, enfin, selon le codage de la classe en question.
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
1
Merci NHenry,

j'ai en faite créé une collection pour les controles enfants.
Messages postés
15137
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 novembre 2020
462
Bonjour quelle version de VB?
Messages postés
14738
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
23 novembre 2020
148
A la vue du code, .NET, je déplace donc.
Messages postés
15137
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 novembre 2020
462
Je pensais aussi