IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[DataGridViewComboBoxColumn] valeur par default pour chaque ligne!


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de mitnick2006
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 163
    Par défaut [DataGridViewComboBoxColumn] valeur par default pour chaque ligne!
    salut à tous

    j ai inséré un combobox dans une datagridview et je sélectionne une valeur par défaut pour le combobox, le problème que la même valeur par défaut s'affiche pour les autre lignes.
    voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    int i = 0;
                List<Pompe> pompes = new List<Pompe>();
                List<Citerne> citernes = new List<Citerne>();
                DataGridViewComboBoxColumn cb = new DataGridViewComboBoxColumn(); ;
     
                pompes.Clear();
                citernes.Clear();
                pompeGridView.Rows.Clear();
                pompes = pm.findAll();
                citernes = cm.findAll();
     
     
                cb.Name = "Type_Citerne";
     
                // ici je rempli le combobox par des données à partir de la base. 
                foreach (Citerne t in citernes)
                    cb.Items.Add(t.type_citerne);
     
                pompeGridView.Columns.Add(cb);
     
     
                foreach (Pompe c in pompes)
                {
                   //ici je sélectionne la valeur par défaut de chaque combobox
                    // mais il affiche juste une seule valeur pour tous les comboxbox
                   cb.DefaultCellStyle.NullValue = c.citerne.type_citerne;
                    pompeGridView.Rows.Add();
     
                }
    voici ci-joint une photo qui illustre ce que j ai dit, et merci en avance
    Images attachées Images attachées  

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    parce que je pense que ton composant utilise UN control comboxbox pour chaque ligne. c'est le même

  3. #3
    Membre confirmé Avatar de mitnick2006
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 163
    Par défaut
    Citation Envoyé par Louis-Guillaume Morand Voir le message
    parce que je pense que ton composant utilise UN control comboxbox pour chaque ligne. c'est le même
    oui parce que c'est une seule colonne! est ce qu' il y a d'autres solutions?!

  4. #4
    Membre confirmé Avatar de mitnick2006
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 163
    Par défaut
    enfin j ai trouvé la solution à mon problème
    voici le code que j ai fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
                int i = 0;
                List<Pompe> pompes = new List<Pompe>();
                List<Citerne> citernes = new List<Citerne>();
     
     
                pompes.Clear();
                citernes.Clear();
                pompeGridView.Rows.Clear();
                pompes = pm.findAll();
                citernes = cm.findAll();
    // cellule pour le combobox
                DataGridViewComboBoxCell[] cb = new  DataGridViewComboBoxCell[pompes.Count];
    // cellule pour le numéro de pompe
                DataGridViewTextBoxCell[] tx0 = new DataGridViewTextBoxCell[pompes.Count];
    //cellule pour la designation 
                DataGridViewTextBoxCell[] tx1 = new DataGridViewTextBoxCell[pompes.Count];
     
    // ligne entière 
                DataGridViewRow []row=new DataGridViewRow[pompes.Count];
     
     
                foreach (Pompe c in pompes)
                {
                    cb[i] = new DataGridViewComboBoxCell();
                    row[i] = new DataGridViewRow();
                    tx0[i] = new DataGridViewTextBoxCell();
                    tx1[i] = new DataGridViewTextBoxCell();
     
                  // peupler le combobox par la liste des citernes
                    foreach( Citerne t in citernes )
                    cb[i].Items.Add(t.type_citerne);
                  // définit la valeur par défaut de chaque pompe
                    cb[i].Value = c.citerne.type_citerne;
                    tx0[i].Value = c.N_pompe;
                    tx1[i].Value = c.Designation;
     
               // ajouter les 3 cellules à chaque ligne 
                    row[i].Cells.Add(tx0[i]);
                    row[i].Cells.Add(tx1[i]);
                    row[i].Cells.Add(cb[i]);
           // ajouter la ligna au  datagridview
                    pompeGridView.Rows.Add(row[i]);
                    i++;
                }
    le résultat d'exécution est comme ca.
    Images attachées Images attachées  

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 30/09/2010, 10h30
  2. Valeur par default dans un input file ?
    Par alainme dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 11/02/2005, 14h31
  3. Réponses: 2
    Dernier message: 18/10/2003, 14h42
  4. [Composants] TRichEdit: Une police pour chaque ligne
    Par naili dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/03/2003, 15h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo