Comment insérer des groupes dans un ListView [Résolu]

Messages postés
112
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
13 juin 2010
- - Dernière réponse : The Red Man
Messages postés
112
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
13 juin 2010
- 21 janv. 2008 à 21:03
Bonjour à tous,

J'ai un projet a terminer et j'aimerai lister des données classées dans une listview par groupe  Et j'aimerai savoir comment faut-il  s'y prendre !

Pour un test, j'ai fait ceci :
this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
            this.columnHeader1,
            this.columnHeader2,
            this.columnHeader3,
            this.columnHeader4,
            this.columnHeader5,
            this.columnHeader6});
            listViewGroup1.Header = "Groupe1";
            listViewGroup1.Name = "Grp1";
            listViewGroup2.Header = "Groupe 2";
            listViewGroup2.Name = "Grp2";
            listViewGroup1.Items.Add("zzzzzzzzz");
            listViewGroup1.Items.Add("zdfzz");
            listViewGroup1.Items.Add("sdfzzzz");

            this.listView1.Groups.Add(listViewGroup2);
            this.listView1.HotTracking = true;
            this.listView1.HoverSelection = true;
            listViewItem3.ToolTipText = "qqqq";
           
            this.listView1.Items.AddRange(new System.Windows.Forms.ListViewItem[] {
            listViewItem1,
            listViewItem2,
            listViewItem3});
            this.listView1.LabelEdit = true;
            this.listView1.Location = new System.Drawing.Point(288, 80);
            this.listView1.Name = "listView1";
            this.listView1.ShowItemToolTips = true;
            this.listView1.Size = new System.Drawing.Size(454, 351);
            this.listView1.TabIndex = 1;
            this.listView1.UseCompatibleStateImageBehavior = false;
            this.listView1.View = System.Windows.Forms.View.Details;
            this.listView1.ShowGroups = true;
            this.listView1.Groups.AddRange(new System.Windows.Forms.ListViewGroup[] {
            listViewGroup1,
            listViewGroup2});

les colonnes et les éléments s'affiche très bien mais le nom du groupe reste "Default" !

Merci pour votre aide !
Afficher la suite 

1 réponse

Meilleure réponse
Messages postés
112
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
13 juin 2010
1
3
Merci
J'ai enfin trouvé :
......
        public ListeCompte()
        {
            InitializeComponent();
            taPC = new Project01Gestion._01GestionDB.bddDataSetTableAdapters.PlanComptableTableAdapter();
            listCompte = new ListView();
            idCol = new ColumnHeader();
            nomCol = new ColumnHeader();
            creeCol = new ColumnHeader();
            classCol = new ColumnHeader();
            idCol.Text = "Numéro du compte";
            nomCol.Text = "Nom du compte";
            classCol.Text = "Classe";
            listCompte.FullRowSelect = true;
            grp1 = new ListViewGroup("GROUPE 1", HorizontalAlignment.Left);
            grp2 = new ListViewGroup("GROUPE 2", HorizontalAlignment.Left);
            grp1.Name = "sd";
            grp2.Name = "sds";
            listCompte.ShowGroups = true;
            listCompte.UseCompatibleStateImageBehavior = true;
            listCompte.Columns.AddRange(new ColumnHeader[] { idCol, nomCol, classCol });
            listCompte.Groups.Add(grp1);
            listCompte.Groups.Add(grp2);
            this.listCompte.View = View.Details;
            listCompte.Dock = DockStyle.Fill;
            Controls.Add(listCompte);
            afficher();
        }

public void afficher()
        {
            ListViewItem item;
            ListViewGroup groupItem = new ListViewGroup("aa");
           

            _01GestionDB.bddDataSet.PlanComptableDataTable dtPC = taPC.GetPlanComptable();
            int i=0;
            foreach (_01GestionDB.bddDataSet.PlanComptableRow pc in dtPC)
            {
                item = new ListViewItem(pc.IdPlanComptable.ToString(),i++);
                item.SubItems.Add(pc.NomCompte);
                item.SubItems.Add(pc.idClasse.ToString());

                // j'ai effectué un petit test, si le numéro de la classe et 1 alors on ajoute l'item au group sinon dans l'audre groupe
                if (Convert.ToInt32(pc.idClasse) == 1)
                {
                    item.Group = grp1;
                }
                else
                {
                    item.Group = grp2;
                }

                // on ajoute chaque item au a la listview
                listCompte.Items.Add(item);
               
            }

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de The Red Man