Ciao Ho ottenuto un DatagridView e vorrei cambiare il colore di sfondo in base ai dati di ogni riga.Aggiornamento cella DataGridView Colore di sfondo in base ai dati di riga
Es.
| Persona 1 | Persona 2 | Persona 3 |
| ---- 100 ---- | --- 200 ----- | ----- 150 ---- |
| ---- 300 ---- | --- 100 ----- | ------ 50 ---- |
Nella prima riga mi piacerebbe che "100" avesse un colore di sfondo rosso e verde "200". Or. Il valore più basso = rosso più alto = verde
Ora il fatto è che sto usando un BindingList per i miei dati, e che è stato aggiornato asincrono con INotifyPropertyChanged. Quindi ho bisogno di un modo per controllare ogni volta che uno dei valori è stato aggiornato.
Do DataGridView ha qualche evento che sarebbe utile?
CellFormatting è un evento quindi non è necessario sottoclasse, è sufficiente iscriversi all'evento. Entrambi raggiungono la stessa cosa. – Tergiver
Thx, l'evento OnCellFormatting sembra promettente. Appena fatto un piccolo test vuoto prisListeView_CellFormatting privato (object sender, DataGridViewCellFormattingEventArgs e) { se (e.Value! = Null) se (e.ColumnIndex == 3 && (decimale) e.Value> 0) { e.CellStyle.BackColor = Color.DodgerBlue; } } Ma come posso cambiare lo stile per le altre celle? Ex. Nella colonna precedente 3 sono cambiati. Come cambio quindi lo stile per le altre celle? – gulbaek
Non sono sicuro circa le prestazioni in questa soluzione, ma funziona :-) E se qualcuno ha bisogno di sapere come modificare le cellule altri stili, ecco il codice datagridview1.Rows [e.RowIndex] [.Cells "myColumn"]. Style.BackColor = Color.DeepPink; – gulbaek