Bonjour
Je vais essayer d’expliquer brièvement le contexte de mon problème : j’ai une classe Médecin, une classe Spécialité, une Arraylist de médecins (listemed) et une Arraylist de spécialités (listespe). Chaque médecin pratique au moins une spécialité. Ainsi, chaque instance de ma classe médecin possède un tableau contenant les spécialités pratiquées par le médecin considéré.
Je voudrais afficher :
- dans une listbox les noms des spécialités qu’il pratique (ça, pas de problème)
- dans une autre listbox les noms du reste des spécialités, celles qu’il ne pratique pas afin que l’utilisateur puisse les faire basculer d’une listbox à l’autre.
Le principe que je voudrais appliquer est le suivant : une fois un médecin sélectionné, on extrait du tableau chacune des spécialités qu’il pratique, et on efface un à un leur homologue dans la liste des spécialités restantes (qui est complète au départ). Voici une partie de mon code :
' on crée une nouvelle liste de spécialités, celles qui ne sont pas pratiquées par le médecin
Dim listespedispo As New GestionSpec
listespedispo.charge() ' au départ, elle contient toutes les spécialités : on la remplit à partir de la base de données
Dim i As Integer ' compteur
' on crée une instance de Médecin à partir de la sélection effectuée dans la listview
Dim med As New Medecin
Try
med = listemed.renvoieElement(indexmed)
' on parcourt le tableau du médecin considéré pour récupérer les spécialités qu'il pratique
For i = 0 To med.nbspe – 1
‘ on crée alors une instance de Spécialité
Dim special As New Specialite
special = med.specialite(i)
' et on la retire dans la liste des spécialités restantes
If listespe.Lspe.Contains(special) Then
listespedispo.Lspe.Remove(special)
Else
MsgBox(med.specialite(i).leNom & " n'a pas été trouvée dans la liste de spécialités.")
End If
Next
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.OkOnly, "Erreur : ")
End Try
Le problème, c’est que l’instruction Remove ne supprime rien. J’ai alors essayé de rechercher la spécialité avec Contains pour vérifier d’abord si on la trouve, mais impossible de la trouver dans l’autre liste alors qu’elle y est, je l’ai vérifié. Je ne comprends pas pourquoi, j’ai pourtant vérifié que je comparais bien deux objets du même type : Spécialité, et c’est le cas.
Je sèche, quelqu’un aurait une idée ??
Merci d’avance…
Partager