Salut,
Soit une Form contenant un DataGridView bindé par un BindingSource.
Une méthode change le style des cellules s'il y a une erreur ou un avertissement lié aux données de la cellule.
La méthode est appelée à plusieurs endroits et fonctionne très bien sauf quand elle est appelée dans le Load.
Après un passage pas à pas du load, je constate que la méthode passe bien et que le style des cellules est bel et bien modifié par la méthode.
Pourtant quand la Form s'affiche (après le Load) les cellules qui ont été modifiées par la méthode (cfr debug en pas-à-pas) restent imperturbablement blanches alord qu'elles devraient être rouges ou jaune selon le cas.
Quelqu'un comprend-il pourquoi ?
Merci de vos z'avis z'avisés
La méthode :
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 private void ligneDataGridView_ChangeCellStyleOnValidation() { foreach (DataGridViewRow row in ligneDataGridView.Rows) foreach (DataGridViewCell cell in row.Cells) cell.Style = null; foreach (DataSetParcelles.ErreurLigne ErreurLigne in ErreursParcelle) if (ErreurLigne.Position > 0 && !string.IsNullOrEmpty(ErreurLigne.ColumnName)) { if (ErreurLigne.ColumnName == "Centre" || ErreurLigne.ColumnName == "Rayon") { ligneDataGridView["CentreRayon", ErreurLigne.Position - 1].Style = CellStyleError; ligneDataGridView["CentreRayon", ErreurLigne.Position - 1].ToolTipText = ErreurLigne.Message.Substring(ErreurLigne.Message.IndexOf(" : ") + 3); } else { ligneDataGridView[ErreurLigne.ColumnName, ErreurLigne.Position - 1].Style = CellStyleError; ligneDataGridView[ErreurLigne.ColumnName, ErreurLigne.Position - 1].ToolTipText = ErreurLigne.Message.Substring(ErreurLigne.Message.IndexOf(" : ") + 3); } } foreach (DataSetParcelles.ErreurLigne AvertissementLigne in AvertissementsParcelle) { if (AvertissementLigne.Position > 0 && !string.IsNullOrEmpty(AvertissementLigne.ColumnName)) { if (AvertissementLigne.ColumnName == "Centre" || AvertissementLigne.ColumnName == "Rayon") { ligneDataGridView["CentreRayon", AvertissementLigne.Position - 1].Style = CellStyleAvertissement; ligneDataGridView["CentreRayon", AvertissementLigne.Position - 1].ToolTipText = AvertissementLigne.Message.Substring(AvertissementLigne.Message.IndexOf(" : ") + 3); } else { ligneDataGridView[AvertissementLigne.ColumnName, AvertissementLigne.Position - 1].Style = CellStyleAvertissement; ligneDataGridView[AvertissementLigne.ColumnName, AvertissementLigne.Position - 1].ToolTipText = AvertissementLigne.Message.Substring(AvertissementLigne.Message.IndexOf(" : ") + 3); } } } }
Partager