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 :

Remplir les colonnes d'une listview


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut Remplir les colonnes d'une listview
    Bonjour
    J'ai créer une listview à 6 colonnes,et je voudrais maintenant remplir ces colonnes au fur et à mesure,mais sa ne me remplis que la 1ére colonne.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
     if (nav2.Value != nav3.Value)
                        {                      
                            ListViewItem lvi2 = new ListViewItem(new string[] { nav2.Value, nav3.Value });
                            listView2.Items.Add(lvi2);
                        }
                        if (nav4.Value != nav5.Value)
                        {
                            ListViewItem lvi3 = new ListViewItem(new string[] { nav4.Value, nav5.Value });
                            listView2.Items.Add(lvi3);
                        }
                        if (nav6.Value != nav7.Value)
                        {
                            ListViewItem lvi4 = new ListViewItem(new string[] { nav6.Value, nav7.Value });
                            listView2.Items.Add(lvi4);
                        }
    Merci pour votre aide.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut
    Pour simplifier,je voudrais seulement savoir comment faire pour choisir la colonne dans laquelle on veut rajouter des données.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut
    J'ai essayé avec les SubItem,mais je n'ai aucun résultat,quelqu'un peut m'en dire plus sur cette méthode?

  4. #4
    Membre actif
    Inscrit en
    Octobre 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2007
    Messages : 236
    Points : 233
    Points
    233
    Par défaut
    Le type d'affichage et fixé par la propriété View que tu dois mettre à Detail pour avoir un affichage sous forme de colonne. Pour modifier un SubItem utilise la collection SubItems tel que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    listView1.Items[line_indice].SubItems[colonne_indice].Text = "Texte de la colonne";

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut
    J'ai essayé comme tu m'a dis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     while (k < ite4.Count)
                            {
                                k++;
                                ite4.MoveNext();
                                ite5.MoveNext();
                                XPathNavigator nav6 = ite4.Current.Clone();
                                XPathNavigator nav7 = ite5.Current.Clone();
                                if (nav6.Value != nav7.Value)
                                {
                                    listView2.Items[1].SubItems[4].Text = nav7.Value;
                                    listView2.Items[1].SubItems[3].Text = nav6.Value;
                                }
                            }
    La génération a lieu,mais quand je le lance mon prog me fout une erreur à ce niveau là.

  6. #6
    Membre actif
    Inscrit en
    Octobre 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2007
    Messages : 236
    Points : 233
    Points
    233
    Par défaut
    La méthode Clone() retourne un Object il faut casté alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                                XPathNavigator nav6 = (XPathNavigator)ite4.Current.Clone();
                                XPathNavigator nav7 = (XPathNavigator)ite5.Current.Clone();
    Il faut préciser la ligne et le type d'exception...

    [EDIT]
    Et aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                                    listView2.Items[1].SubItems[4].Text = nav7.Value.ToString();
                                    listView2.Items[1].SubItems[3].Text = nav6.Value.ToString();

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut
    Merci pour ta réponse,elle m'a bien aidé.
    Maintenant j'ai un autre probléme.Quand je fais un Breakpoint sur une de ce type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     listView2.Items[1].SubItems[4].Text = nav7.Value.ToString();
    Il passe directement au catch.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    while (k < ite4.Count)
                            {
                                k++;
                                ite4.MoveNext();
                                ite5.MoveNext();
                                XPathNavigator nav6 = (XPathNavigator)ite4.Current.Clone();
                                XPathNavigator nav7 = (XPathNavigator)ite5.Current.Clone();
                                if (nav6.Value != nav7.Value)
                                {
                                    listView2.Items[1].SubItems[4].Text = nav7.Value.ToString();
                                    listView2.Items[1].SubItems[3].Text = nav6.Value.ToString();
                                }
                            }

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut
    Apparemment c'est un probléme d'index pour mon item[]
    Merci de m'aider.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut
    Je me suis remis à mon programme et j'ai toujours cette ligne qui me pose problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    listView2.Items[l].SubItems[3].Text = nav6.Value.ToString();

  10. #10
    Membre actif
    Inscrit en
    Octobre 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2007
    Messages : 236
    Points : 233
    Points
    233
    Par défaut
    Quelle exception levée lors de l'exécution de la ligne?
    Et le message d'erreur.

  11. #11
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Points : 4 574
    Points
    4 574
    Par défaut
    Citation Envoyé par Mathew77 Voir le message
    Je me suis remis à mon programme et j'ai toujours cette ligne qui me pose problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    listView2.Items[l].SubItems[3].Text = nav6.Value.ToString();
    Salut,

    Tu as entré la lettre l au lieu du chiffre 1 dans ton listView2.Items[]. Corrige et ça devrait aller

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut
    Interception de ArgumementOutOFRangeException
    InvalidArgument=La valeur '0' n'est pas valide pour 'index'

  13. #13
    Membre actif
    Inscrit en
    Octobre 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2007
    Messages : 236
    Points : 233
    Points
    233
    Par défaut
    Est ce que tu inséres suffisement de subitems avant le remplissage des colonnes?

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut
    Je viens de me rendre compte que je n'ai créé aucun subitems,d'où l'erreur.
    Comment faire pour créer un subitems?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    item1.SubItems.Add(nav3.Value);

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     XPathNodeIterator ite2 = nav.Select(expr2);
                XPathNodeIterator ite3 = nav1.Select(expr3);
                XPathNodeIterator ite4 = nav.Select(expr4);
                XPathNodeIterator ite5 = nav1.Select(expr5);
     
                int i = 0, j = 0, k = 0, l = 0, m = 0;
                listView2.Items.Clear();
                listView2.Columns.Add("ElementExtractorMono n°1", +200, HorizontalAlignment.Left);
                listView2.Columns.Add("ElementExtractorMono n°2", +200, HorizontalAlignment.Left);
                listView2.Columns.Add("ElementExtractorMulti n°1", +200, HorizontalAlignment.Left);
                listView2.Columns.Add("ElementExtractorMulti n°2", +200, HorizontalAlignment.Left);
                ListViewItem item1 = new ListViewItem("item1", 0);
     
     
     
     
     
     
                try
                {
                    while (i < ite2.Count)
                    {
     
     
     
                        i++;
                        ite2.MoveNext();
                        ite3.MoveNext();
     
                        XPathNavigator nav2 = (XPathNavigator)ite2.Current.Clone();
                        XPathNavigator nav3 = (XPathNavigator)ite3.Current.Clone();
     
                        if (nav2.Value != nav3.Value)
                        {
                            item1.SubItems.Add("1");
                            item1.SubItems.Add("2");
                            j++;
                            listView2.Items[j].SubItems[1].Text = nav2.Value.ToString();
                            listView2.Items[j].SubItems[2].Text = nav3.Value.ToString();
                        }
     
     
     
                            while (k < ite4.Count)
                            {
     
                                k++;
                                ite4.MoveNext();
                                ite5.MoveNext();
                                XPathNavigator nav6 = (XPathNavigator)ite4.Current.Clone();
                                XPathNavigator nav7 = (XPathNavigator)ite5.Current.Clone();
                                if (nav6.Value != nav7.Value)
                                {
     
                                    k++;
                                    listView2.Items[k].SubItems[3].Text = nav6.Value.ToString();
                                    listView2.Items[k].SubItems[4].Text = nav7.Value.ToString();
                                }
                            }
    Où est ce que je dois créer mon subitem?

  16. #16
    Membre actif
    Inscrit en
    Octobre 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2007
    Messages : 236
    Points : 233
    Points
    233
    Par défaut
    Le nombre de subitems que tu vas ajouter doit avoir un maximum de ListView.Columns.Count au delà de ce nombre l'ajout de subitems termine en silence sans déclencher aucune exception ni rien ajouter.
    Où ajouter les subitems?
    Est ce possible de poster un exemple du document XML que tu veux charger dans la ListView.

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut
    Bien sur
    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
    46
    47
    48
    49
    50
    51
    52
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <root.30>
    	<age>2</age>
    	<mature>0</mature>
    	<idStruct>2</idStruct>
    	<elements.9>
    		<elements>
    			<ElementExtractorMono.3>
    				<name>VATTotalTotal</name>
    				<elmType>0</elmType>
    				<idData>31</idData>
    				<minLen>5</minLen>
    				<maxLen>5</maxLen>
    				<charSet>.0256</charSet>
    				<mature>0</mature>
    				<occurrences.22>
    					<occurrences>
    						<OccurrencePosCutting.13>
    							<x1>0,8220</x1>
    							<x2>0,8517</x2>
    							<y1>0,6421</y1>
    							<y2>0,6487</y2>
    							<qualite>9</qualite>
    							<groupIDs>-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1</groupIDs>
    							<curGroup>0</curGroup>
    							<myGroup>-1</myGroup>
    							<subLeft>0,0000</subLeft>
    							<subRight>0,0000</subRight>
    							<subLen>0,0000</subLen>
    							<subCount>0</subCount>
    							<subNoCount>1</subNoCount>
    							<leftCutExp></leftCutExp>
    							<rightCutExp></rightCutExp>
    							<mature>0</mature>
    						</OccurrencePosCutting.13>
    					</occurrences>
    				</occurrences.22>
    			</ElementExtractorMono.3>
    			<ElementExtractorMono.3>
    				<name>TTC_Total</name>
    				<elmType>0</elmType>
    				<idData>32</idData>
    				<minLen>6</minLen>
    				<maxLen>6</maxLen>
    				<charSet>.0123456789</charSet>
    				<mature>0</mature>
    				<occurrences.22>
    					<occurrences>
    						<OccurrencePosCutting.13>
    							<x1>0,9104</x1>
    							<x2>0,9610</x2>
    							<y1>0,6259</y1>
    C'est juste le début.

  18. #18
    Membre actif
    Inscrit en
    Octobre 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2007
    Messages : 236
    Points : 233
    Points
    233
    Par défaut
    Je sais pas mais ça me semble une arborescence ton XML, non?
    Si oui, je suis partant pour TreeView et non pas une ListView.

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut
    Oui mais je ne cherche pas à faire une arborescence,je veux simplement afficher en cliquant sur un bouton,soit 4 colonne avec des données du xml,soit en cliquant sur un autre bouton,afficher 2 colonne avec des données du xml.
    Mon problème actuelle est que je n'arrive pas à afficher les données que j'ai recueilli dans mon xml,dans la colonne que je souhaite.

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut
    J'ai essayé cela aujourd'hui :
    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
     try
                {
                    while (i < ite2.Count)
                    {
     
                        i++;
                        ite2.MoveNext();
                        ite3.MoveNext();
     
                        XPathNavigator nav2 = (XPathNavigator)ite2.Current.Clone();
                        XPathNavigator nav3 = (XPathNavigator)ite3.Current.Clone();
     
                        if (nav2.Value != nav3.Value)
                        {
                            ListViewItem hot = new ListViewItem();
                            hot.Text = nav2.Value.ToString();
                            hot.SubItems.Add(nav3.Value.ToString());
                            listView2.Items.Add(hot);
                        }
     
     
     
                            while (k < ite4.Count)
                            {
     
                                k++;
                                ite4.MoveNext();
                                ite5.MoveNext();
                                XPathNavigator nav6 = (XPathNavigator)ite4.Current.Clone();
                                XPathNavigator nav7 = (XPathNavigator)ite5.Current.Clone();
                                if (nav6.Value != nav7.Value)
                                {
                                    ListViewItem hot1 = new ListViewItem();
                                    hot1.Text = nav6.Value.ToString();
                                    hot1.SubItems.Add(nav7.Value.ToString());
                                    listView2.Items.Add(hot1);
    Il n'affiche que dans les 2 premiéres colonnes,si quelqu'un a la solution pour afficher dans les 4 colonnes,merci.

Discussions similaires

  1. Faire apparaitre les colonnes dans une ListView
    Par affreuxzozo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 19/03/2013, 13h58
  2. Trier les colonnes d'une ListView
    Par Thomas Lebrun dans le forum Contribuez
    Réponses: 0
    Dernier message: 28/12/2010, 23h53
  3. Trier les colonnes d'une ListView
    Par Thomas Lebrun dans le forum Contribuez
    Réponses: 0
    Dernier message: 28/12/2010, 19h26
  4. Redimensionner les colonnes d'une listview
    Par Gaetch dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 20/07/2007, 10h36
  5. [VBA] Trier les colonnes d'une listview
    Par alncool dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/09/2005, 14h12

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