Remplissage de Comboboxs [Résolu]

Signaler
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
-
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
-
Bonjour à tous,

J'ai une ArrayList de chaine et un comboboxs et je voudrais remplir le comboboxs en fonction de ma liste de chaine sans avoir à faire :

moncombobox.Items.Clear() ; et ensuite je fais une boucle pour mettre mon arraylist de chaine dans le combobox.

En faite je voudrais que le comboboxs soit remplis de manière dynamique en faite, donc dans le code ci dessous je lis ma liste de chaine et si la chaine_en_cours1 se trouve dans le comboboxs je ne fais rien sinon je rajoute la chaine_en_cours1 dans le comboboxs. Ainsi si j'ai :

mon_arraylist_de_chaine | item_des_comboboxs
jean jean
claude
paul

j'aurais une fois ce code executé :

mon_arraylist_de_chaine | item_des_comboboxs

jean jean

claude claude

paul paul

mais comment faire pour supprimer les items en trop en effet si j'ai :

mon_arraylist_de_chaine | item_des_comboboxs

jean jean

claude

paul

ca ne marchera pas une fois mon code executé j'aurais exactement la même chose.

Voici le code en question :

for (int i = 0 ; i < liste_chaine->get_Count() ; i++)
{
String * chaine_en_cours1 = dynamic_cast<String*>(liste_chaine->get_Item(i)) ;

bool existe = false ;

for (int i2 = 0 ; i2 < cboCombo->Items->get_Count() ; i2++)
{
String * chaine_en_cours2 = dynamic_cast<String*>( cboCombo->Items->get_Item(i2)) ;

if (String::Compare(chaine_en_cours1,chaine_en_cours2,true) == 0)
{
existe = true ;
break ;
}
}

if (existe == false)
cboCombo->Items->Add(chaine_en_cours1) ;

}

Quelqun aurait t'il une idée sur la question ?

Par avance, merci.

7 réponses

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
50
Salut,

Est-ce que la solution du Databinding te conviendrait ?

tonCombobox.DataSource = tonArraylist;

et si tu modifies ton arrayList, pour que ton combobox ait la meme valeur, tu as juste a faire :

tonCombobox.DataSource = null;
tonCombobox.DataSource = tonArraylist;


Mx
MVP C#
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
50
tonComboBox.SelectedItem = "claude";
et on en parle plus.

Tu n'as qu'a declarer une string qui contient la valeur sur laquelle tu veux positionner ton combobox, et tu la reaffectes a chaque maj de ton combobox.


Mx
MVP C#
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
2
Ben je connaissais pas, j'ai essayé mais quand je fais : tonCombobox.DataSource = tonArraylist ;

Il me séléctionne par défaut l'item numéro 1. Moi ce que je voudrais en faite c'est que l'item séléctionne ne bouge pas en faite.

Si j'ai :

item_des_comboboxs
jean
claude // le combobox pointe sur celui là
paul

et que le combobox et remplis une nouvelle fois :

item_des_comboboxs
jean
claude // le combobox pointe encore sur celui là
paul
jacques
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
2
oui en effet, ca à l'air d'être la meilleurs solution, merci de ton aide.
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
2
Et une dernière petite question pour la route : Quand tu fais :

tonCombobox.DataSource = null;
tonCombobox.DataSource = tonArraylist;

Pourquoi tu met tonCombobox.DataSource = null; avant ?
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
50
Il me semble que sinon ca ne marche pas, si ?
Le changement n'est pas pris en compte.



Mx
MVP C#
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
2
Ben si apparement ca marche même ca, enfin j'ai peut être pas tester suffisament