Ajouté des inormation dans plusieur column d'une list View

Signaler
Messages postés
11
Date d'inscription
dimanche 1 février 2009
Statut
Membre
Dernière intervention
11 mai 2009
-
Messages postés
11
Date d'inscription
dimanche 1 février 2009
Statut
Membre
Dernière intervention
11 mai 2009
-
bonsoir,

bon voila je récupéré des information a partir d'un tableau et je veut les affiché dan plusieurs colon mais tous s'affiche sur la premier seulement jais utiliser subitem mai ca donne rien car jutelise une bocle
aidé moi je doi rendre le projet, merci
voici le bou de code :
 String[] days = new String[] { "LUNDI", "MARDI", "MERCREDI", "JEUDI", "VENDREDI", "SAMEDI", "DIMANCHE" };
                    for (int dayIndex = 0; dayIndex < days.Length; dayIndex++)
                    {
                        ColumnHeader col = new ColumnHeader();
                        col.Text = (days[dayIndex]);
                        col.Width = 130;
                        lvPers.Columns.Add(col);

                      
                        for (int hourInDayIndex = 0; hourInDayIndex < 24; hourInDayIndex++)
                        {

                            lvPers.Items.Add(new ListViewItem (logonHoursMatrix[dayIndex, hourInDayIndex] + " "));

                          
                        

                        }
                      
                    }

4 réponses

Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
44
Salut

Tout d'abord, relis-toi avant de poster un message s'il te plaît. Ton message et même son sujet contiennent pas mal de fautes.

En ce qui concerne ton problème :
Un ListViewItem est une ligne complète. Donc en faire 7 x 24 aboutira évidemment à 168 lignes. Si j'ai bien compris, tu n'en veux que 24.
Dans ce cas, sort ton for (hourInDayIndex) de ton for (dayIndex).
Puis, dans ton for (hourInDayIndex), crée un nouveau ListViewItem, avec comme Text sa valeur pour Lundi (donc à priori logonHoursMatrix[0, hourInDayIndex].ToString()). Puis fait une boucle qui va de Mardi à Dimanche pour ajouter les valeurs aux SubItems de ton ListViewItem.
Une fois que tu as ajouté le Lundi à Text et les autres jours à SubItems, tu peux ajouter ton ListViewItem à ta ListView.

Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
Messages postés
11
Date d'inscription
dimanche 1 février 2009
Statut
Membre
Dernière intervention
11 mai 2009

merci pour ta sujestion mais elle marche pa je pensse car dan la boucle il recherche la list view et  ne la trouve pa enfin voici ce que jai fait:
String

[] days =
new
String[] {
"LUNDI",
"MARDI",
"MERCREDI",
"JEUDI",
"VENDREDI",
"SAMEDI",
"DIMANCHE" };

for (
int dayIndex = 0; dayIndex < days.Length; dayIndex++){
// remplire les colomn

ColumnHeader col =
new
ColumnHeader(); col.Text = (days[dayIndex]);

col.Width = 130;

lvPers.Columns.Add(col);

}
//la premier boucle

for (
int hourInDayIndex = 0; hourInDayIndex < 24; hourInDayIndex++){

ListViewItem it =
new
ListViewItem();it.SubItems[0].Text = (logonHoursMatrix[0, hourInDayIndex] +

" ");

}

for (
int l = 1; l < 7; l++){

it.

for (
int hourInDayIndex = 0; hourInDayIndex < 24; hourInDayIndex++){

it.SubItems.Add((logonHoursMatrix[l, hourInDayIndex] +

" "));}

}

lvPers.Items.Add(it);//
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
44
Avant de traduire ce que je dis en code, réfléchis exactement à ce que je te propose. Car tes boucles montrent que tu n'as pas bien compris ce que je t'ai dit.
Au niveau des étapes :
- On prépare les colonnes
- Pour chaque heure, on prépare un objet avec comme valeur de base celle du lundi
- Pour chaque objet, on rajoute les valeurs du mardi jusqu'au dimanche en valeurs supplémentaires

Ce qui se traduit en :
            string[] days = new string[] { "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche" };
            for (int dayIndex = 0; dayIndex < days.Length; dayIndex++)
            {
                ColumnHeader col = new ColumnHeader();
                col.Text = days[dayIndex];
                col.Width = 130;
                lvPers.Columns.Add(col);
            }

            for (int HourInDayIndex = 0; HourInDayIndex < 24; HourInDayIndex++)
            {
                ListViewItem it = new ListViewItem();
                it.Text /* Et non subitem[0] */= logonHoursMatrix[0, HourInDayIndex].ToString(); // .ToString() c'est beaucoup plus propre que + " "
                for (int i = 1; i < days.Length; i++) // Cette boucle est imbriquée, donc lors de la création du ListViewItem
                {
                    it.SubItems.Add(logonHoursMatrix[i, HourInDayIndex].ToString());
                }
                lvPers.Items.Add(it); // L'ajout doit aussi se faire dans la boucle
            }
Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
Messages postés
11
Date d'inscription
dimanche 1 février 2009
Statut
Membre
Dernière intervention
11 mai 2009

merci beaucoup , ca marche tré bien


je voulez vous demandez un truck ,  comment je peu inserer des légande a mes lignes comme exemple 


le code que vous m'avez corriger , comment inserer des heur avec les ligne


 


merci