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 193 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 193 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
Rejoignez-nous