Ho un problema interessante. Sto cercando di utilizzare un datatable come origine dati per un datagridview. Voglio colorare alcune celle del tavolo per indicare varie cose, ma per qualche motivo il colore non verrà visualizzato. Quindi il codice seguente mostra una cella non colorata.Impossibile cambiare il colore della cella del datagridview quando si utilizza un'origine dati
dataGridView1.DataSource = table;
dataGridView1.Rows[0].Cells[0].Style.BackColor = Color.Yellow;
posso solo ottenere un colore da visualizzare dopo il carico forma iniziale (ad esempio impostando un colore di cella sull'evento OnClick). Tuttavia, se creo in modo esplicito righe e colonne per la vista come nel codice sottostante, la colorazione funziona.
foreach (DataColumn col in table.Columns)
dataGridView1.Columns.Add(col.ColumnName, col.ColumnName);
for (int i = 0; i < table.Rows.Count; i++)
{
var row = table.Rows[i];
object[] values = new object[table.Columns.Count];
for (int x = 0; x < table.Columns.Count; x++)
values[x] = row[x].ToString();
dataGridView1.Rows.Add(values);
}
dataGridView1.Rows[0].Cells[0].Style.BackColor = Color.Yellow;
Non voglio avere il codice in questo modo. Qualcuno sa cosa sta succedendo qui che mi impedisce di colorare le cellule?
Non si mostra dove si sta tentando di colorare le celle - Immagino che sia all'interno del costruttore di moduli, dopo che è stato chiamato InitializeComponent(). La mia risposta è basata su questo. –