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 :

Colorer les cellules de mes datagridbiew


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2021
    Messages : 13
    Points : 6
    Points
    6
    Par défaut Colorer les cellules de mes datagridbiew
    Bonjour à vous !
    J'ai récemment commencé un projet où je veux colorier les cellules de mes datagridview en fonction des valeurs d'une colonne (par ligne).
    J'ai utilisé le "CellFormatting" et le "CellPainting" pour colorier mes 4 datagridview mais cela ne fonctionne pas alors que j'arrive à colorier un datagridview seul sur un autre form, des idées ?

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
     private void grille_CellFormatting(Object sender, DataGridViewCellFormattingEventArgs e) //colore une seule cellule 
            {
                        if (e.Value.ToString() == "ESP2")
                        {
                            e.CellStyle.BackColor = Color.MediumPurple;
                        }
     
                        if (e.Value.ToString() == "LCALA")
                        {
                            e.CellStyle.BackColor = Color.Yellow;
                        }
     
                        if (e.Value.ToString() == "AGL1")
                        {
                            e.CellStyle.BackColor = Color.FromArgb(255, 128, 128);
                        }
                        if (e.Value.ToString() == "AGL2")
                        {
                            e.CellStyle.BackColor = Color.FromArgb(255, 128, 128);
                        }
     
                        /************************DOUBLE OPTIONS NE MARCHE PAS POUR COLORER UNE CELLULE************************/
     
                        /*if (e.Value.ToString() == "ALL1")
                        {
                            e.CellStyle.BackColor = Color.LightGreen;
                        }
                        if (e.Value.ToString() == "ALL2")
                        {
                            e.CellStyle.BackColor = Color.LightGreen;
                        }
                        if (e.Value.ToString() == "ALL9")
                        {
                            e.CellStyle.BackColor = Color.LightGreen;
                        }*/
     
                        foreach (DataGridViewRow aglrow6 in dtGridView6eme.Rows) //colore ligne par ligne 
                        {
                            if (aglrow6.Cells[8].Value.ToString() == "AGL1" && aglrow6.Cells[9].Value.ToString() == "ALL2")//cherche dans la colonne des langues une valeur "allemand" 
                            {
                                aglrow6.DefaultCellStyle.BackColor = Color.Pink; //definit une coleur a la ligne si valeur trouvé 
                            }
                        }
     
                        foreach (DataGridViewRow aglrow5 in dtGridView5eme.Rows) //colore ligne par ligne 
                        {
                            if (aglrow5.Cells[8].Value.ToString() == "AGL1" && aglrow5.Cells[9].Value.ToString() == "ALL2")//cherche dans la colonne des langues une valeur "allemand" 
                            {
                                aglrow5.DefaultCellStyle.BackColor = Color.Pink; //definit une coleur a la ligne si valeur trouvé 
                            }
                        }
     
                        foreach (DataGridViewRow aglrow4 in dtGridView4eme.Rows) //colore ligne par ligne 
                        {
                            if (aglrow4.Cells[8].Value.ToString() == "AGL1" && aglrow4.Cells[9].Value.ToString() == "ALL2")//cherche dans la colonne des langues une valeur "allemand" 
                            {
                                aglrow4.DefaultCellStyle.BackColor = Color.Pink; //definit une coleur a la ligne si valeur trouvé 
                            }
                        }
     
                        foreach (DataGridViewRow aglrow3 in dtGridView3eme.Rows) //colore ligne par ligne 
                        {
                            if (aglrow3.Cells[8].Value.ToString() == "AGL1" && aglrow3.Cells[9].Value.ToString() == "ALL2")//cherche dans la colonne des langues une valeur "allemand" 
                            {
                                aglrow3.DefaultCellStyle.BackColor = Color.Pink; //definit une coleur a la ligne si valeur trouvé 
                            }
                        }
            }
     
            private void btnCharger2_Click(object sender, EventArgs e)
            {
                //string nomFichier = "*****";
                //déclaration et utilisation d'un OLeDbConnection 
                OleDbConnection Excel =
                    new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=*****;Extended Properties=""Excel 12.0 Xml;HDR=YES"""); //HDR=yes qui dit que la première ligne de chaque colonne est le nom des colonnes et le IMEX=1 qui est une option d'accès qui dit que le type des données sont mix (string + int)
                Excel.Open();
                //notre requête sélectionne toute les cellule de la Feuil1 
                OleDbCommand cmd6 = new OleDbCommand("select * from [6EME$]", Excel);
                OleDbDataReader dr6 = cmd6.ExecuteReader();
                tableDonnees6.Load(dr6);
                dtGridView6eme.DataSource = tableDonnees6;
     
                //notre requête sélectionne toute les cellule de la Feuil1 
                OleDbCommand cmd5 = new OleDbCommand("select * from [5EME$]", Excel);
                OleDbDataReader dr5 = cmd5.ExecuteReader();
                tableDonnees5.Load(dr5);
                dtGridView5eme.DataSource = tableDonnees5;
     
                //notre requête sélectionne toute les cellule de la Feuil1 
                OleDbCommand cmd4 = new OleDbCommand("select * from [4EME$]", Excel);
                OleDbDataReader dr4 = cmd4.ExecuteReader();
                tableDonnees4.Load(dr4);
                dtGridView4eme.DataSource = tableDonnees4;
     
                //notre requête sélectionne toute les cellule de la Feuil1 
                OleDbCommand cmd3 = new OleDbCommand("select * from [3EME$]", Excel);
                OleDbDataReader dr3 = cmd3.ExecuteReader();
                tableDonnees3.Load(dr3);
                dtGridView3eme.DataSource = tableDonnees3;
            }
    Voici le code que j'utilise pour colorier de base mes lignes et mes cellules de mes datagridview mais qui ne marche pas :(

    Merci à vous !

  2. #2
    Membre habitué
    Homme Profil pro
    Passioné ...
    Inscrit en
    Juillet 2020
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Passioné ...
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2020
    Messages : 145
    Points : 158
    Points
    158
    Par défaut
    Bonjour j'ai déjà utilisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (ma condition) MaDatagridview.Rows[i].DefaultCellStyle.BackColor = Color.Macouleur;
    Mais ça colore la ligne entière avec ce code ... alors, regarde avec DefaultCellStyle il doit y avoir une ruse pour que cela ne se produise qu'avec la cellule de ton choix ....
    Denis

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/12/2014, 15h33
  2. Réponses: 0
    Dernier message: 31/03/2011, 16h53
  3. Supprimer les cellules qui ne sont pas colorées
    Par Gwadadev dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 22/05/2008, 10h45
  4. [JTable] colorer les cellules
    Par minooo dans le forum Composants
    Réponses: 3
    Dernier message: 28/01/2008, 23h46
  5. colorer les cellules d'un formulaire
    Par salsero1 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 26/04/2007, 23h34

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