Combobox

gzitoun
Messages postés
61
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
10 décembre 2009
- 17 juil. 2007 à 09:24
cs_rodcobalt22
Messages postés
195
Date d'inscription
dimanche 10 février 2002
Statut
Membre
Dernière intervention
16 février 2016
- 20 juil. 2007 à 12:54
Bonjour,

j ai un petit probleme. Je remplis ma combobox de cette maniere:

comboSite.DataBindings.Clear();
this.comboSite.DataSource = dt4;
this.comboSite.DisplayMember = "site";
this.comboSite.ValueMember = "id";

J obtiens ainsi un menu deroulant me permettant de choisir un site.

Je veux ensuite choisir dans une deuxieme combobox un des batiments du site:

private void comboSite_SelectedIndexChanged(object sender, EventArgs e)
{
dt5 = new DataTable();
cn5 = new SqlCeConnection("Data Source=Storage Card\\DB3.sdf");
DataRowView row = this.comboSite.SelectedItem as DataRowView;
if (row != null)
da5 new SqlCeDataAdapter("SELECT * FROM batiment WHERE id_site '" + row["id"].ToString() + "' ", cn5);
da5.Fill(dt5);
foreach (DataRow dr5 in dt5.Rows)
{
comboBat.DataBindings.Clear();
this.comboBat.DataSource = dt5;
this.comboBat.DisplayMember = "batiment";
this.comboBat.ValueMember = "id";
//comboBat.Items.Add(dr5["batiment"].ToString());
}

cn5.Close();

}

Comment eviter le remplissage automatique de ma deuxieme combobox: je voudrais un affichage seulement une fois que j ai clique sur un des sites de ma premiere combo(comme s il s agissait d un bouton)?

Est il possible vu la facon dont je remplis ma premiere combo de n afficher le menu deroulant qu apres un clic sur la petite fleche de ma combo(champ vide au debut)?

Merci!

1 réponse

cs_rodcobalt22
Messages postés
195
Date d'inscription
dimanche 10 février 2002
Statut
Membre
Dernière intervention
16 février 2016

20 juil. 2007 à 12:54
Une solution consistera à flaguer ta combobox avec un boléen pour indiquer qu'elle est en chargement.

Sur ce controle (Et bien d'autre) tu as une propriété "Tag" qui permet de stocker de l'Object. Stocke un boolén et on selectedIndex test cette valeur.

Il doit y avoir dans les événements une autre solution mais celle ci à la mérite d'être intéressante.
0