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 :

ListBox : Lignes de couleurs [Débutant]


Sujet :

C#

  1. #1
    Membre régulier Avatar de RowanMayfair
    Femme Profil pro
    Développeuse Freelance
    Inscrit en
    Mars 2019
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeuse Freelance

    Informations forums :
    Inscription : Mars 2019
    Messages : 247
    Points : 89
    Points
    89
    Par défaut ListBox : Lignes de couleurs
    Bonjour,

    J'ai donc une chose comme ça : https://prnt.sc/qemsiy

    Le but du jeu, c'est donc que les contacts apparaissent dans la listBox en violet s'il s'agit d'un particulier, et en vert si c'est un professionnel.
    En sachant que ma listBox se remplit à partir une List, qui enregistre les contacts à la création dans des objets de type Particulier ou Professionnel.

    J'ai fouillé le net, j'ai trouvé ceci https://docs.microsoft.com/fr-fr/dot...tframework-4.8, mais je ne sais pas correctement l'utiliser.

    Moi j'ai fait ça :
    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
    private void lstContact_DrawItem(object sender, DrawItemEventArgs e)
            {
                // Draw the background of the ListBox control for each item.
                e.DrawBackground();
                // Define the default color of the brush as black.
                Brush myBrush = Brushes.Black;
     
                if (e.Index != -1)
                {
                    for (int i = 0; i < lstContact.Items.Count; i++)
                    {
                        if (lesContacts[correspondanceIndice(i)] is Particulier)
                        {
                            myBrush = Brushes.BlueViolet;
                        }
                        else if (lesContacts[correspondanceIndice(i)] is Professionnel)
                        {
                            myBrush = Brushes.ForestGreen;
                        }
     
                    }
                }
     
     
                // Draw the current item text based on the current Font 
                // and the custom brush settings.
                e.Graphics.DrawString(lstContact.Items[e.Index].ToString(),
                    e.Font, myBrush, e.Bounds, StringFormat.GenericDefault);
                // If the ListBox has focus, draw a focus rectangle around the selected item.
                e.DrawFocusRectangle();
    Résultat : si j'ajoute un Particulier, alors toutes les lignes deviennent violet, et si j'ajoute un Pro, toutes les lignes deviennent vertes.

    Donc y a un truc que j'ai mal fait.....quelqu'un saurait me dire ?

    D'avance merci

  2. #2
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 898
    Points : 1 915
    Points
    1 915
    Par défaut
    Manifestement l'événement DrawItem est appelé pour chaque item, donc ça n'a pas de sens que tu parcoures ta liste d'item. Enlève juste le for pour ne garder que l'assignation de la brosse en fonction de l'item en cours.

  3. #3
    Membre régulier Avatar de RowanMayfair
    Femme Profil pro
    Développeuse Freelance
    Inscrit en
    Mars 2019
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeuse Freelance

    Informations forums :
    Inscription : Mars 2019
    Messages : 247
    Points : 89
    Points
    89
    Par défaut
    Merci Noxen, c'était bien ça

    Voilà ce qui arrive quand on recopie du code qu'on ne comprend pas

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/09/2011, 15h45
  2. Listbox avec des lignes de couleurs différentes
    Par biwi8272 dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 04/02/2009, 16h24
  3. [listbox] changer la couleur d'une ligne au passage de la souris
    Par amatollah dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 03/10/2006, 15h25
  4. Comment mettre des lignes de couleur dans une TCheckListBox ?
    Par Isa31 dans le forum Composants VCL
    Réponses: 9
    Dernier message: 31/03/2005, 08h40
  5. [C#] Comment mettre une ligne en couleur dans mon DataGrid ?
    Par vandeyy dans le forum Windows Forms
    Réponses: 7
    Dernier message: 19/07/2004, 10h03

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