Bonjour à tous,

j'ai une ListBox dans laquelle j'insère des instances de cette classe :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Public Class clsItem
 
    Public Valeur As Integer
    Public Texte As String
 
    Public Sub New()
        Valeur = 0
        Texte = ""
    End Sub
 
    Public Sub New(ByVal NewValeur As Integer, ByVal NewTexte As String)
        Valeur = NewValeur
        Texte = NewTexte
    End Sub
 
    Public Overrides Function ToString() As String
        Return Texte
    End Function
 
End Class
J'affiche la propriété "Texte" dans la ListBox, et pour récupérer la propriété "Valeur" quand je
clique sur un élément, j'utilise ce code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Dim a As New clsItem
a = DirectCast(Me.ListBox1.SelectedItem, clsItem)
MessageBox.Show(a.Valeur.ToString)
Tout fonctionne très bien.
Mais je me suis rendu compte que si après la MessageBox j'insère par exemple :

ça me change la valeur de l'objet dans la ListBox.

Que faire pour obtenir une copie et non pas une "référence" de l'objet cliqué ?

Merci d'avance :-)