Bonjour à tous,

j'ai une ListBox que je rempli avec des objets crées à partir d'une Structure.
J'insere les objets comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Dim NewObjet As Struct1
 
NewObjet = New Struct1
NewObjet.Nom = "Toto"
NewObjet.Age = 145
Me.ListBoxNom.Items.Add(NewObjet)
Quand je click sur un element de la ListBox, il affiche la valeur des differents membres dans des TextBox.

Sur le formulaire, je peux modifier manuellement la valeur des TextBox,
et j'ai un bouton pour valider les modifications. J'utilise ce code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Dim NewObjet As Struct1
 
Idx = Me.ListBoxNom.SelectedIndex
NewObjet = New Struct1
NewObjet.Age = Me.TextBoxAge.Text
NewObjet.Ville = Me.TextBoxVille.Text
Me.ListBoxNom.Items.Remove(Me.ListBoxNom.SelectedItem)
Me.ListBoxNom.Items.Insert(Idx, NewObjet)
et ça a l'air de bien fonctionner.

Mais j'ai essayé cet autre code et ça a l'air de fonctionner aussi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Dim NewObjet As Struct1
 
NewObjet = CType(Me.ListBoxNom.SelectedItem, Struct1)
NewObjet.Age = Me.TextBoxAge.Text
NewObjet.Ville = Me.TextBoxVille.Text
Me.ListBoxNom.Items.Item(Me.ListBoxNom.SelectedIndex) = NewObjet
Je me dis que l'ancien objet n'etant plus référencé nul part une fois sorti de la Sub,
le Garbage Collector doit se charger de sa destruction. Non ?