DataGridView changer la couleur de fond de la cellule
J'ai le code suivant :
private void dgvStatus_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
foreach (DataGridViewRow row in dgvStatus.Rows)
{
row.Cells[color.Index].Style.BackColor = Color.FromArgb(((GesTest.dsEssais.FMstatusAnomalieRow)row.DataBoundItem).iColor);
}
}
Je vais essayer de définir la couleur de fond de chaque cellule de la couleur de fond de la colonne. cela ne fonctionne pas, la couleur ne change jamais. Une idée de pourquoi?
J'ai été en regardant autour, mais n'a pas trouvé quelque chose d'utile
source d'informationauteur Rémi | 2013-04-19
Vous devez vous connecter pour publier un commentaire.
Suffit de créer un nouveau DataGridViewCellStyle objet, sa couleur de fond et ensuite affecter les cellules du style:
J'ai enfin réussi à le faire fonctionner. Voici le code :
si quelqu'un connaissez une meilleure pour ce faire, n'hésitez pas à le poster. Je suis ouvert à la suggestion
Si vous êtes toujours interessé par pourquoi cela n'a pas fonctionné pour vous dans un premier temps:
La raison pour laquelle vous ne voyez pas les modifications que vous avez apportées à la cellule de style est parce que vous n'ces changements avant le formulaire a été montré, et donc ils sont ignorés.
Évolution des styles de cellule dans les événements proposé ici va faire le travail, mais ils sont appelés plusieurs fois cause de vos changements de style à se produire plus de fois que vous le souhaitez, et n'ont donc pas très efficace.
Pour résoudre ce problème, modifiez le style après le point dans votre code dans lequel le formulaire est affiché, ou de s'abonner à l'événement, et placez vos changements (c'est événement est appelé de manière significative moins que les autres événements proposés).
essayez les solutions suivantes (en RowDataBound méthode de contrôle GridView):