Manipuler DropDownList de comboboxs
Bonjour
Je suis confronté à un problème dont je ne comprends pas le pourquoi (et donc je ne trouve pas de solution).
Pour simplifier, j'ai 2 comboboxs Cbx1 et Cbx2, dont leurs Datasources sont bindées à une Dataview filtrée.
J'ai également une procédure qui "reset" les dataviews de ces 2 cbx, ce qui fait qu'elles se retrouvent bindées à une nouvelle DataView filtrée differemment.
A la fin de cette même procédure, il y a du code qui remet la valeur Text de ces 2 Cbx à celles qu'elles avaient avant le reset, si et seulement si ces anciennes valeurs appartiennent à la nouvelle dataview. (obligé de faire ca car sinon le fait d'affecter une nouvelle dataview à un Datasource provoque le Text = 1ère valeur de la nouvelle dataview...relou mais bon...)
Jusque là pas de problème... sauf dans le cas où ces 2 Cbx sont en fait mutuellement exclusives. Cela signifie que la valeur Text de la 1ère Cbx ne doit pas apparaitre dans la liste déroulante de la 2nde Cbx, et vice versa.
Donc dans l'événement qui appelle la procédure "Reset", j'ai rajouté ces lignes :
Code:
1 2 3 4 5 6 7
| UpdateEquipList() ' procédure reset
If Cbx1.FindStringExact(Cbx2.Text) > -1 Then
Cbx1.Items.Remove(Cbx2.Text)
End If
If Cbx2.FindStringExact(Cbx1.Text) > -1 Then
Cbx2.Items.Remove(Cbx1.Text)
End If |
Pas d'erreur de syntaxe, mais à l'éxécution , ca fait......... rien du tout 8O
On retrouve Cbx1.text dans la liste déroulante de Cbx2 et vice versa...
Après quelques heures de recherche, je crois que les collections Cbx1.Items et Cbx2.Items sont en fait vides, vu que j'ai "rempli" ces comboboxs via leur datasource. (bizarrement quand je teste Cbx1.Items.Count, ca me retourne 79... et après le .Remove, .count=79 pareil:furieux:)
J'ai donc essayé en remplaçant les lignes en gras par : et là je m'aperçois que VB ne me propose pas de méthode Remove ou Delete, ni même Item...
...et comme je n'ai plus accès aux dataviews, je ne peut pas m'en servir.
Je ne peut pas non plus mettre ces lignes directement dans la procédure UpdateEquipList() puisque je dois attendre que Cbx1 et Cbx2 aient été resetées, avant de pouvoir de comparer leurs valeurs Text.
Du coup, me voilà bien coincé...:traine:
Quelqu'un aurait-il une idée svp ?