Bonjour, j'aimerai evité d'avoir des doublons dans ma combobox. Existe-il une propriété qui fait ca ou dois-je la consevoir moi même?
Merci![]()
Bonjour, j'aimerai evité d'avoir des doublons dans ma combobox. Existe-il une propriété qui fait ca ou dois-je la consevoir moi même?
Merci![]()
Bonjour,
que mets tu dans ta combobox ? elle est liée à une base ?
En fait, comment est elle remplie ?
Tatone
Salut,
si ton combobox est basé sur un datatable, voici une fonction que j'ai récupéré sur le net qui fonctionne très bien :
Tu indiques ta table et le champ à récupérer puis cela te retourne la table avec le champ sans doublon.
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
21
22
23
24
25
26 Public Function selectDistincDataView(ByVal table As DataTable, ByVal champ As String) As DataTable 'PERMET D'EFFECTUER UN SELECT DISTINCT SUR UN DATATABLE Dim i As Int32 Dim ret As Int16 Dim dtResultat As New DataTable dtResultat.Columns.Add(champ, table.Columns(champ).DataType) dtResultat.DefaultView.Sort = champ dtResultat.DefaultView.ApplyDefaultSort = True For i = 0 To table.Rows.Count - 1 If dtResultat.Rows.Count > 0 Then ret = dtResultat.DefaultView.Find(table.Rows(i)(champ)) If ret = -1 Then dtResultat.Rows.Add(dtResultat.NewRow) 'dtResultat.Rows(dtResultat.Rows.Count - 1)(champ) = table.Rows(i)(champ) dtResultat.Rows(dtResultat.Rows.Count - 1)(champ) = table.Rows(i)(champ) End If Else 'MsgBox(table.Rows(0)(champ)) dtResultat.Rows.Add(dtResultat.NewRow) 'dtResultat.Rows(0)(champ) = table.Rows(0)(champ) dtResultat.Rows(0)(champ) = table.Rows(0)(champ) End If Next Return dtResultat End Function
Lorsque je veux faire ça, juste avant d'insérer la valeur dans le combobox je regarde si le string (ou l'objet) à insérer est déjà présent dans le combobox.
Fais attention cependant parce que c'est case sensitive. Ce qui veut dire que si "Meow" est dans le combobox et que tu regarde si "meow" existe dans tes item, il va te dire que non.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 MonComboBox.Items.Contains("StringAInserer")
Bonjour.
Je pense que le probléme du dédoublonnage en masque un autre.
Utiliser une datasource contenant de doublons pour un combobox démontre un probléme conceptuel quelque part.
Donc pourquoi as-tu des doublons dans la source ?
Cdt.
Merci pour votre aide je vais essayer les differente solutions, pour l'histoire des doublons c'est mon pote qui a fait la partie du programme il a pas reflechi comment faire et tout refaire maintenant demanderais trop de travail pour le temps a dispotition.
Désolé pour la réponse super tardive, alors j'ai essayer leca marche nickel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part MonComboBox.Items.Contains("StringAInserer")
Partager