Lier combox à texbox

Signaler
Messages postés
7
Date d'inscription
mercredi 14 mai 2008
Statut
Membre
Dernière intervention
8 novembre 2010
-
Messages postés
7
Date d'inscription
mercredi 14 mai 2008
Statut
Membre
Dernière intervention
8 novembre 2010
-
Bonjour!
je n'arrive pas à lier combobox à textebox;
j'ai une table Mode règlement,
pour un code de règlement du combox , je veux avoir le libellé du règlement dans le textbox.

j'ai commencé mais j'arrive pas à afficher le libellé règlement qui correspond au code règlement.
//execute vos instructions
SqlDataAdapter da = new SqlDataAdapter(selectquery, conn);
DataTable Table_View = new DataTable();
da.Fill(Table_View);
cb_Mode.ValueMember = "Code Mode Réglement";
cb_Mode.DataSource = Table_View;


merci pour l'aide.

9 réponses

Messages postés
268
Date d'inscription
lundi 1 mars 2004
Statut
Membre
Dernière intervention
19 avril 2012
11
Si tu travailles en Winforms, tu peux utiliser les évènements SelectedIndexChanged et SelectedValueChanged.

Si tu travailles avec une base de données, alors SelectedValueChanged est une bonne idée.

On va prendre pour exemple le fait que tu veuilles afficher dans ta textbox la valeur de ta combobox.

combobox.SelectedValueChanged += SelectedValueChanged;

private void SelectedValueChanged(object sender, EventArgs e)
{
    ComboBox codeReglement = sender as ComboBox;
    txtLibelleReglement.Text = codeReglement.SelectedValue.ToString();
}


Maintenant à toi de voir quoi mettre en lieu et place de codeReglement.SelectedValue.ToString();
Messages postés
7
Date d'inscription
mercredi 14 mai 2008
Statut
Membre
Dernière intervention
8 novembre 2010

No je travail avec une base de donnée SQL Server.
et j'ai une table Mode_Règlement,
à chaque code_règlement correspond un libellé_reèglement.

string selectquery = "SELECT [Code Mode Réglement],[Libellé Mode Réglement] FROM dbo.[Modes Règlements]";
SqlConnection conn = new SqlConnection(Chaine_SQLServers())
//Ouvre la cnnection
 conn.Open();
SqlCommand cmd = new SqlCommand(selectquery, conn);
 SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read()){
//ajouter les données dans le combox cb_Mode.Items.Add(reader["Code Mode Réglement"]);                                 
 }


avec le textbox voilà je sais pas comment faire:
private void SelectedValueChanged(object sender, EventArgs e)
{
  ComboBox cb_Mode = sender as ComboBox;
  txtLibelleReglement.Text= cb_Mode.SelectedValue.ToString();
}


@+
Messages postés
268
Date d'inscription
lundi 1 mars 2004
Statut
Membre
Dernière intervention
19 avril 2012
11
Salut, alors j'ai saisi le truc; pour ma part, histoire de simplifier un max les choses je crérais un dictionnaire ayant comme clé, ce que tu ajouteras dans ta combo box et en valeur ce qui apparaitra dans ta text box.

Donc :

private SortedDictionary<string, string> reglement = new SortedDictionary<string, string>();

SqlConnection conn = new SqlConnection(Chaine_SQLServers())
//Ouvre la cnnection
 conn.Open();
SqlCommand cmd = new SqlCommand(selectquery, conn);
 SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
   // Ajoute le couple code et libellé dans le dictionnaire
   reglement.Add(reader["Code Mode Reglement"], reader["Libellé Mode Réglement"]);
}

// Ensuite on remplit le combo box avec les clés :
foreach(string k in reglement.Keys)
  combobox.Items.Add(k);


// Enfin on va mettre en place l'évènement SelectedValueChanged sur le combobox
combobox.SelectedValueChanged += SelectedValueChanged;

// Puis on va traiter cette évènement en affichant dans le text box, son libellé
private void SelectedValueChanged(object sender, EventArgs e)
{
   txtbox.Text = reglement[combobox.SelectedValue.ToString()];
}


Voili, voilou
Messages postés
7
Date d'inscription
mercredi 14 mai 2008
Statut
Membre
Dernière intervention
8 novembre 2010

, je suis un peu news en C#, je vois bien ton code mais et aimerais comprendre
private SortedDictionary<string, string> reglement = new SortedDictionary<string, string>();

en particulier
S<string, string>, que je vois pour ma première fois!
@+
Messages postés
268
Date d'inscription
lundi 1 mars 2004
Statut
Membre
Dernière intervention
19 avril 2012
11
Salut,
alors un SortedDictionary permet d'ajouter un couple clé/valeur dans un ordre précis. Ici la clé est un objet string et notre valeur aussi.

Donc l'ordre de tri du dictionnaire se fait en fonction de sa clé. Ici notre clé est de type string donc le tri se fera par ordre alphabétique croissant.

Tu auras plus d'infos ici
Messages postés
7
Date d'inscription
mercredi 14 mai 2008
Statut
Membre
Dernière intervention
8 novembre 2010

Merci beacoups j'ai quelque chose de nouveau.
Messages postés
7
Date d'inscription
mercredi 14 mai 2008
Statut
Membre
Dernière intervention
8 novembre 2010

j'avais tenté une autres méthode qui est une classe et des methodes qui marchent très bien.
mais est trôp long si je dois travail avec plusieurs combox et text box.
Alors j'ai décidé de travail sur la méthode de MasterShadows, qui me semble plus simple.
mais je trouve coinci sur un des codes.


private void SelectedValueChanged(object sender, EventArgs e)
{
   txtbox.Text = reglement[combobox.SelectedValue.ToString()];
}

qui ne retrouve aucune valeur.

aussi j'ai mis les codes ci-dessous dans une methode pour enfin les charger sur mon formulaire.

 private void remplire_combox()
        {

            // Ensuite on remplit le combo box avec les clés :
            foreach (string k in reglement.Keys) {
                cb_Mode.Items.Add(k);
            
            }
           

            // Enfin on va mettre en place l'évènement SelectedValueChanged sur le combobox
           cb_Mode.SelectedValueChanged += cb_Mode_SelectedValueChanged;
           
        }

pouvez m'expliquer svp pour quoi sa coince?
Merci
Messages postés
380
Date d'inscription
samedi 22 janvier 2005
Statut
Membre
Dernière intervention
13 août 2011
7
salut les gars

pourkoi tu ne bind pas la value Text de ton textbox a la value selectedItems de ton combobox

TextBox1.DataBindings.Add("Text", combobox1, "SelectedItem");

la le text du textbox changera a chaque changement de valeur du combobox
Messages postés
7
Date d'inscription
mercredi 14 mai 2008
Statut
Membre
Dernière intervention
8 novembre 2010

je comprend absolument rien. j'ai utilisé une autre méthode. mais je voudrais bien comprendre la votre.