Partage
  • Partager sur Facebook
  • Partager sur Twitter

ajouter des colonnes dans un listview

    2 avril 2019 à 5:00:02

    Bonjour
    j'ai un petit problème,

    j'ai fais un devoirs ou je dois afficher le retard de chaque coureur pour les 3 étapes d'une course... pour stocké les résultats j'Ai utiliser un tableau de 10 lignes (pour les 10 coureurs) et de 5 colonnes(date, les 3 étapes et la somme du retard cumulé)

    voici le bout de code que j'ai fais (celui-ci fonctionne bien)

     this.listView1.Columns.Add("Coureur #", 120, HorizontalAlignment.Left);
                this.listView1.Columns.Add("Date", 100, HorizontalAlignment.Left);
                this.listView1.Columns.Add("Étape 1", 100, HorizontalAlignment.Center);
                this.listView1.Columns.Add("Étape 2", 100, HorizontalAlignment.Center);
                this.listView1.Columns.Add("Étape 3", 100, HorizontalAlignment.Center);
                this.listView1.Columns.Add("Retard cumulé", 120, HorizontalAlignment.Center);
                
    
                //Le remplissage des items (lignes)
                for (int index = 0; index < tabCoureurs.Length; index++)
                {
                    //ajouter le coureur qui correspond à l'index au listview
                    ListViewItem ligne = new ListViewItem(new string[]{
                                                  ($"#:{index+1}"),
                                                  tabCoureurs[index][0],
                                                  tabCoureurs[index][1],
                                                  tabCoureurs[index][2],
                                                  tabCoureurs[index][3],
                                                  tabCoureurs[index][4],
                                                 });
                    this.listView1.Items.Add(ligne);
                }



    cela m'affiche ceci

    cependant je veux le faire avec un tableau dont la taille n'est pas connu a l'avance... par exemple il pourrait y avoir 5 coureurs et 2 étapes ou 4 coureurs et 3 étapes etc.... 

    le problème est que je ne connais pas a l'avance le nombre d'étape donc comment je peux m'y prendre pour les afficher?

    j'ai essayer ceci mais ca ne fonctionne pas :(

         //Affichage du résultat des coureurs dans un listview
                //vider les colonnes et les lignes du listview
                this.listView1.Columns.Clear();
                this.listView1.Items.Clear();
    
                //configurer le listview pour qu'il se comporte comme un grid
                this.listView1.View = View.Details;
                this.listView1.GridLines = true;
    
                //La configuration des colonnes
    
                this.listView1.Columns.Add("Coureur #", 120, HorizontalAlignment.Left);
    
                this.listView1.Columns.Add($"Étape # : {numEtape + 1}", 100, HorizontalAlignment.Center);
    
                this.listView1.Columns.Add("Retard cumulé", 120, HorizontalAlignment.Center);
    
    
                //Le remplissage des items (lignes)
                for (int index = 0; index < tabResultats.Length; index++)
                {
                    //ajouter le coureur qui correspond à l'index au listview
                    ListViewItem ligne = new ListViewItem(new string[]{
                                                  ($"#{index+1}"),
                                                  Convert.ToString(tabResultats[index]),
                                                  Convert.ToString(tabCumulRetard[index]),
                                                
                                                 });
                    this.listView1.Items.Add(ligne);
                }

    voici ce que cela m'Affiche 

    donc je devrais avoir deux colonnes pour les 2 étapes et un résultat pour les 3 coureurs

    merci

    • Partager sur Facebook
    • Partager sur Twitter
      2 avril 2019 à 11:46:21

      Salut,

      Tu n'ajoutes qu'une seule colonne dans la listView, ligne 14, il faut plutôt boucler.

      Et pour l'item, ligne 23, il faut que tu crées le tableau de string avant de l'ajouter, comme ça tu pourras aussi boucler et ajouter autant de temps de retard que besoin.

      Mais ça fait un peu bricolage, histoire de simplifier un peu tu pourrais commencer par créer une classe "Coureur" qui te permet de stocker les données par coureur et pouvoir les afficher plus facilement.

      • Partager sur Facebook
      • Partager sur Twitter
        2 avril 2019 à 11:56:18

        Moi, je vous conseille d'utiliser plutôt un composant de type "Grid" plutôt qu'une ListView, en générale.

        Je vous conseille aussi d'utiliser le DataBinding avec une DataTable plutôt que de faire directement mumuse avec les données à afficher.

        La ligne 14 devrait être dans une boucle pour créer autant de colonnes que nécessaire.

        Les lignes 23 à 26 devraient être modifiées car vous devez boucler autant de fois qu'il y a d'étape et donc ajouter des valeurs.

        Donc exit votre "Array" et utilisez des "List".

        C'est quoi le type de votre "tabResultats[index]" ???

        • Partager sur Facebook
        • Partager sur Twitter
        Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
          2 avril 2019 à 15:54:42

          Bonjour

          merci pour vos conseils je vais essayer avec une boucle car je n'ai pas encore vue les classes et les List 

          mon tabResultats[index]est en string 

          • Partager sur Facebook
          • Partager sur Twitter
            3 avril 2019 à 10:39:44

            >mon tabResultats[index]est en string

            Alors son alimentation est à  revoir.

            • Partager sur Facebook
            • Partager sur Twitter
            Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
              3 avril 2019 à 23:43:56

              Pourquoi?

              je m'excuse! j'Ai surement l'Air stupide la mais je débute a peine la programmation et je ne maîtrise pas encore parfaitement les tableaux et les boucles

              • Partager sur Facebook
              • Partager sur Twitter
                4 avril 2019 à 10:43:21

                >Pourquoi?

                Le contenu de la colonne "Étape # : ..." affiché dans la copie d'écran. ;-)

                • Partager sur Facebook
                • Partager sur Twitter
                Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                  4 avril 2019 à 17:43:27

                  ha d'Accord c'est pour cela que ou mon étape ca m'Affiche system... a la place de mes valeurs? est-ce que ca signifie que je doit convertir mes valeurs?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    4 avril 2019 à 18:09:04

                    >c'est pour cela que ou mon étape ca m'Affiche system... a la place de mes valeurs?

                    Oui.

                    >est-ce que ca signifie que je doit convertir mes valeurs?

                    Plutôt que les convertir, c'est plutôt faire en sorte qu'elles s'affichent correctement.

                    Mais il faut plus d'info sur comment vous gérez les données et c'est à faire une fois vos problème d'IHM réglés.

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                      4 avril 2019 à 19:28:29

                      c'est quoi IHM?

                      j'ai réussie a faire une boucle pour ajouter les colonnes de mon nombre d'étape mais j'arrive toujours pas a y afficher les valeurs et les valeurs de mon retard cumulé ne s'affiche pas dans ma colonne de retard cumulé mais dans ma derniere étape :(

                      • Partager sur Facebook
                      • Partager sur Twitter
                        5 avril 2019 à 11:06:38

                        IHM  : Interface Homme Machine

                        Ton interface graphique quoi.

                        Le code source SVP.

                        • Partager sur Facebook
                        • Partager sur Twitter
                        Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

                        ajouter des colonnes dans un listview

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown