Bonjour à tous,
Je rencontre un problème sur la mise en forme d'un DataGridView, lorsque j'utilise la méthode DataBindingComplete pour mettre en gras certaine ligne en fonction de la valeur d'une cellule, j'ai un temps de traitement extraordinairement long pour seulement quelque ligne dans la BDD.
J'ai pu lire sur internet qu'il fallait passer par CellValueNeeded en mettant a true la valeur
dgv_mails.VirtualMode = true;
et en s'abonnant à :
dgv_mails.CellValueNeeded += new DataGridViewCellValueEventHandler(dgv_mails_CellValueNeeded);
puis en déclarant dans la methode CellValueNeeded le cellFormating. j'ai donc fait comme cela :
//form Load
1 2
| dgv_mails.VirtualMode = true;
dgv_mails.CellValueNeeded += new DataGridViewCellValueEventHandler(dgv_mails_CellValueNeeded); |
Methode de traitement
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| private void dgv_mails_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e)
{
foreach (DataGridViewRow row in dgv_mails.Rows)
{
DataGridViewCell Cellule = row.Cells["MI_ETAT_READ"];
if (Cellule.Value == null) return;
if (Cellule.Value.ToString() == "0")
row.DefaultCellStyle.Font = new Font(DataGridView.DefaultFont, FontStyle.Bold);
else
row.DefaultCellStyle.Font = new Font(DataGridView.DefaultFont, FontStyle.Regular);
}
} |
Je n'arrive pas au résultat voulu, les lignes de la condition ne sont pas en Gras.
Merci pour vos commentaires.
Partager