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

C# Discussion :

listView et subItems [Débutant]


Sujet :

C#

  1. #1
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Juin 2013
    Messages : 12
    Points : 10
    Points
    10
    Par défaut listView et subItems
    Bonjour,

    J'ai un listView avec trois colonnes en mode détail et je voudrais pouvoir changer la couleur au click des subitems (nombres) indépendamment dans chaque colonne. voilà le code que j'ai et qui ne change la couleur que sur la première colonne.Je n'arrive pas à changer la couleur dans la colonne 2 et 3.

    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
     
     
    foreach (System.Windows.Forms.ListViewItem couleur1 in this.printableListView.Items)
           {
                  couleur1.UseItemStyleForSubItems = true;
                   string[] agf = { couleur1.Text };
     
                   for (int i = 0; i < agf.Length; i++)
                {
                       if (couleur1.Selected)
     
                           couleur1.SubItems[i].ForeColor = Color.Red;
     
                 }
     
          }
    Merci de votre aide.

  2. #2
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Citation Envoyé par FACBEST Voir le message
    J'ai un listView avec trois colonnes en mode détail et je voudrais pouvoir changer la couleur au click des subitems (nombres) indépendamment dans chaque colonne. voilà le code que j'ai et qui ne change la couleur que sur la première colonne.Je n'arrive pas à changer la couleur dans la colonne 2 et 3.
    Bonjour,

    A mon avis, tu ne pourras pas avoir ce comportement car par défaut avec le la propriété FullRowSelect à false, tu ne peux que sélectionner la première colonne de ta listview. Même en passant FullRowSelect à True, tu sélectionneras en ce moment l'ensemble des sous-éléments ie la ligne entière.

    Je crois que tu pourrais avoir ce comprtement pas avec une listview mais une datagridview.
    N'oubliez pas le tag et

  3. #3
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2003
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 274
    Points : 372
    Points
    372
    Par défaut
    Salut,

    Alors tu te trompes simplement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    foreach (System.Windows.Forms.ListViewItem couleur1 in this.printableListView.Items)
    {
        couleur1.UseItemStyleForSubItems = false;
        string[] agf = { couleur1.Text };
     
        for (int i = 0; i < agf.Length; i++)
        {
             if (couleur1.Selected) 
                 couleur1.SubItems[i].ForeColor = Color.Red; 
         } 
    }
    Vous avez la réponse à votre question ? Mettez votre sujet en

    Une personne vous a correctement aidé ? Cliquez sur le

  4. #4
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Citation Envoyé par eagleleader Voir le message
    Salut,

    Alors tu te trompes simplement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    foreach (System.Windows.Forms.ListViewItem couleur1 in this.printableListView.Items)
    {
        couleur1.UseItemStyleForSubItems = false;
        string[] agf = { couleur1.Text };
     
        for (int i = 0; i < agf.Length; i++)
        {
             if (couleur1.Selected) 
                 couleur1.SubItems[i].ForeColor = Color.Red; 
         } 
    }
    Bonjour eagleleader,
    Même dans ce cas, c'est seulement la première colonne qui sera impactée. Les autres items des colonnes 2 et 3 resteront inchangés. A mon avis, un datagridview serait plus adapté à son cas.
    N'oubliez pas le tag et

  5. #5
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Citation Envoyé par callo Voir le message
    Même dans ce cas, c'est seulement la première colonne qui sera impactée. Les autres items des colonnes 2 et 3 resteront inchangés.
    Je crois que j'ai parlé un peu trop vite, je viens de faire un test et les autres colonnes ont été affectées:
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    private void listView1_MouseDown(object sender, MouseEventArgs e)
            {
                ListViewHitTestInfo info = listView1.HitTest(e.X, e.Y);
     
                ListViewItem.ListViewSubItem subItem = null;
     
                if (info != null)
                {
                    if (info.Item != null)
                        subItem = info.Item.GetSubItemAt(e.X, e.Y);
     
                    if (subItem != null)
                        subItem.ForeColor = Color.Red;
                }
            }
    Peut-être qu'en creusant un peu dans ce sens, FACBEST arriverait à ses fins. Mais je continue quand même de croire qu'un datagridview serait plus adapté dans ce cas de figure .
    N'oubliez pas le tag et

  6. #6
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    FACBEST, pourrais-tu expliquer comment tu as finalement résolu ton cas? Cela pourrait toujours servir à d'autres personnes. Merci.
    N'oubliez pas le tag et

  7. #7
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Juin 2013
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    En réalité j'ai abandonné de peindre les nombre car je suis obligé de rester sur un listView je peut pas travailler avec un datagridview.
    Je pense que je vais créer plusieurs listView et dispatcher mes nombres dans chacun d'eux.

  8. #8
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    ok, mais as-tu explorer la piste proposée plus haut?
    N'oubliez pas le tag et

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. listview subitem changer la couleur
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/05/2008, 19h28
  2. Sélection d'un SubItem dans un listview
    Par Fly3R dans le forum Windows Forms
    Réponses: 5
    Dernier message: 02/09/2007, 12h26
  3. [C#] Recuperer un chaine contenu dans un SubItems d'une Listview
    Par superjaja dans le forum Windows Forms
    Réponses: 2
    Dernier message: 30/11/2006, 15h30
  4. [c# VS2005] Sélection d'un subitem dans un ListView
    Par FredericB dans le forum Windows Forms
    Réponses: 1
    Dernier message: 29/06/2006, 16h13
  5. ListView, SubItem et memo
    Par boyerf dans le forum Composants VCL
    Réponses: 3
    Dernier message: 01/12/2002, 08h19

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