Lier combox à texbox

solaar14 Messages postés 7 Date d'inscription mercredi 14 mai 2008 Statut Membre Dernière intervention 8 novembre 2010 - 3 juil. 2010 à 02:38
solaar14 Messages postés 7 Date d'inscription mercredi 14 mai 2008 Statut Membre Dernière intervention 8 novembre 2010 - 8 nov. 2010 à 18:11
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

MasterShadows Messages postés 268 Date d'inscription lundi 1 mars 2004 Statut Membre Dernière intervention 19 avril 2012 12
4 juil. 2010 à 10:52
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();
0
solaar14 Messages postés 7 Date d'inscription mercredi 14 mai 2008 Statut Membre Dernière intervention 8 novembre 2010
5 juil. 2010 à 13:39
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();
}


@+
0
MasterShadows Messages postés 268 Date d'inscription lundi 1 mars 2004 Statut Membre Dernière intervention 19 avril 2012 12
5 juil. 2010 à 13:55
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
0
solaar14 Messages postés 7 Date d'inscription mercredi 14 mai 2008 Statut Membre Dernière intervention 8 novembre 2010
5 juil. 2010 à 16:15
, 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!
@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MasterShadows Messages postés 268 Date d'inscription lundi 1 mars 2004 Statut Membre Dernière intervention 19 avril 2012 12
5 juil. 2010 à 17:38
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
0
solaar14 Messages postés 7 Date d'inscription mercredi 14 mai 2008 Statut Membre Dernière intervention 8 novembre 2010
5 juil. 2010 à 23:35
Merci beacoups j'ai quelque chose de nouveau.
0
solaar14 Messages postés 7 Date d'inscription mercredi 14 mai 2008 Statut Membre Dernière intervention 8 novembre 2010
18 sept. 2010 à 00:17
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
0
yohan49 Messages postés 380 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 13 août 2011 7
24 sept. 2010 à 01:08
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
0
solaar14 Messages postés 7 Date d'inscription mercredi 14 mai 2008 Statut Membre Dernière intervention 8 novembre 2010
8 nov. 2010 à 18:11
je comprend absolument rien. j'ai utilisé une autre méthode. mais je voudrais bien comprendre la votre.
0
Rejoignez-nous