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

The Red Man 112 Messages postés vendredi 15 avril 2005Date d'inscription 13 juin 2010 Dernière intervention - 21 janv. 2008 à 10:36 - Dernière réponse : The Red Man 112 Messages postés vendredi 15 avril 2005Date d'inscription 13 juin 2010 Dernière intervention
- 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 

Votre réponse

1 réponse

Meilleure réponse
The Red Man 112 Messages postés vendredi 15 avril 2005Date d'inscription 13 juin 2010 Dernière intervention - 21 janv. 2008 à 21:03
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);
               
            }

Merci The Red Man 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Commenter la réponse de The Red Man

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.