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 :

DataGridView: Colorier des lignes en fonction de valeurs


Sujet :

Windows Forms

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur Développement Logiciel
    Inscrit en
    Septembre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ingénieur Développement Logiciel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 285
    Points : 421
    Points
    421
    Par défaut DataGridView: Colorier des lignes en fonction de valeurs
    Bonjour à tous,
    je remplit une datagridview et ensuite je teste les valeurs d'une cellule puis donne des couleurs à la cellule en fonctions des valeurs de la cellule en question. Il s'avère que rien ne se passe: voilà le code pour colorier la ligne:
    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
     
     
     
     
    private void ColorieLesLignes(DataGridView dgv)
            {
                int nbrLigne = dgv.RowCount;
                int nbrColon = dgv.ColumnCount;
     
                for (int i = 0; i <= nbrLigne - 2;i++)
                {
                    DataGridViewCell cellule = dgv.Rows[i].Cells[nbrColon - 1];                
                    int valCell = int.Parse((cellule.Value.Equals(null) ? "0" : cellule.Value.ToString()));                
                    if (!valCell.Equals(0))
                    {                    
                        if (valCell > 0 && valCell <= 7) cellule.Style.BackColor = Color.GreenYellow;                        
                        if (valCell > 7 && valCell <= 15) cellule.Style.BackColor = Color.Yellow;                    
                        if (valCell > 15) cellule.Style.BackColor = Color.Orange;                                      
                    }
                    else cellule.Style.BackColor = Color.Green; 
                }     
          }
    Merci pour votre aide.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    Salut,

    Il faut utiliser l'événement "CellFormating".

    Exemple :
    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
    public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                var voitures = new List<Voiture> 
                {
                    new Voiture { Nom="Abc", NombrePorte=3},
                    new Voiture { Nom="Def", NombrePorte=5},
                    new Voiture { Nom="Ghj", NombrePorte=2},
                    new Voiture { Nom="Klm", NombrePorte=6},
                    new Voiture { Nom="Nop", NombrePorte=2},
                    new Voiture { Nom="Qrs", NombrePorte=3},
                    new Voiture { Nom="Tuv", NombrePorte=5},
                };
                dgvTest.DataSource = voitures;
                this.dgvTest.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.dgvTest_CellFormatting);
            }
     
            private void dgvTest_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
            {
                DataGridViewRow row = dgvTest.Rows[e.RowIndex];
                int nombrePorte = (int)row.Cells[1].Value;
                if (nombrePorte > 4)
                    e.CellStyle.BackColor = Color.Green;
                else
                    e.CellStyle.BackColor = Color.Red;
            }
        }
     
        public class Voiture
        {
            public string Nom { get; set; }
            public int NombrePorte { get; set; }
        }

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur Développement Logiciel
    Inscrit en
    Septembre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ingénieur Développement Logiciel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 285
    Points : 421
    Points
    421
    Par défaut
    C'est parfait!

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

Discussions similaires

  1. [XL-2010] Supprimer des lignes en fonction de la valeur de la cellule de deux colonnes
    Par jérémyp8 dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 18/07/2013, 09h25
  2. [XL-2010] Colorer des lignes en fonction de la valeur d'une colonne
    Par antoninr dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/01/2013, 13h33
  3. [XL-2010] supprimer des lignes en fonction de la valeur de la cellule d'une colonne
    Par psylo24 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/11/2012, 13h09
  4. Réponses: 5
    Dernier message: 21/12/2011, 08h31
  5. [XL-2007] Extraire des lignes en fonction d'une valeur de cellule dans un autre fichier
    Par MisterTambo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/08/2009, 10h42

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