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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
dgv_mails.VirtualMode = true;
et en s'abonnant à :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
dgv_mails.VirtualMode = true;
            dgv_mails.CellValueNeeded += new DataGridViewCellValueEventHandler(dgv_mails_CellValueNeeded);
Methode de traitement
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
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.