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 valeuret en s'abonnant à :
Code : Sélectionner tout - Visualiser dans une fenêtre à part dgv_mails.VirtualMode = true;
puis en déclarant dans la methode CellValueNeeded le cellFormating. j'ai donc fait comme cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part dgv_mails.CellValueNeeded += new DataGridViewCellValueEventHandler(dgv_mails_CellValueNeeded);
//form Load
Methode de traitement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 dgv_mails.VirtualMode = true; dgv_mails.CellValueNeeded += new DataGridViewCellValueEventHandler(dgv_mails_CellValueNeeded);
Je n'arrive pas au résultat voulu, les lignes de la condition ne sont pas en Gras.
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); } }
Merci pour vos commentaires.
Partager