J'essaie désespérément de comprendre comment changer la couleur d'arrière-plan d'une seule cellule dans un winGridViewGridView. J'ai deux colonnes: si je change de contenu dans la deuxième colonne, je veux que la cellule de la première colonne de cette rangée change l'arrière-plan en conséquence.Comment changer la couleur d'arrière-plan d'une seule cellule dans un windows.forms.datagrid?
private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
if (e.ColumnIndex != 0 || e.RowIndex == -1)
return;
if (dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString() == "Red")
e.CellStyle.BackColor = Color.Red;
else
e.CellStyle.BackColor = Color.White;
}
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex != 1 || e.RowIndex == -1)
return;
// dataGridView1.Rows[e.RowIndex].Cells[0]. ???
}
Le premier gestionnaire d'événements définit la backColor des cellules de la première colonne si elles sont peintes. Le deuxième gestionnaire d'événements doit dire à la première cellule de peindre si la valeur est modifiée. Si je change la largeur des colonnes, il peint la couleur correcte, donc le premier gestionnaire fait le travail. Mais comment déclencher la peinture cellulaire?
Merci de votre aide.
exactement ce que je cherchais. merci. –