C# Couleur dans Cellule Datagrid View

Donc à la génération du datagridview vous souhaitez en fonction de valeur de cellule changer la couleur des cellules :

IL vous suffit d’utiliser la fonction CellFormating

ATTENTION CODE PAS TOUT A FAIT JUSTE , MIS EN VRAC 

Exemple: (ici je change les couleurs des cellules qui contiennent M ou B M quelque soit la colonne ou se situe cette valeur)

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
 {
 for (int i = 0; i < dataGridView1.Columns.Count; i++)
 {

switch (dataGridView1.Rows[0].Cells[i].Value.ToString())
 {
 case "M":
 dataGridView1.Rows[0].Cells[i].Style.BackColor = Color.Red;
 break;
 case "B M":
 dataGridView1.Rows[0].Cells[i].Style.BackColor = Color.Red;
 break;
 case "A":
 dataGridView1.Rows[0].Cells[i].Style.BackColor = Color.Green;
 break;
 case "B A":
 dataGridView1.Rows[0].Cells[i].Style.BackColor = Color.Green;
 break;
 case "N":
 dataGridView1.Rows[0].Cells[i].Style.BackColor = Color.Yellow;
 break;
 case "B N":
 dataGridView1.Rows[0].Cells[i].Style.BackColor = Color.Yellow;
 break;
 }
 }

Si je souhaite changer la couleur de mes cellules en fonction d’un evenement (bouton par exemple )

Voici une astuce (parmis tant d’autres )

public void formatDatagridview()
 {
 foreach (DataGridViewRow row in dataGridView1.Rows)
 {
 DataGridViewCell Cellule = row.Cells["TICS_PUT"];
 if (Cellule.Value == null) return;

if (Cellule.Value.ToString() == "9062")
 Cellule.Style.BackColor = Color.Red;

}

}

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *