Mam interesujący problem. Próbuję użyć datatable jako źródło danych dla datagridview. Chcę pokolorować niektóre komórki tabeli, aby wskazać różne rzeczy, ale z jakiegoś powodu kolory nie będą wyświetlane. Tak więc poniższy kod pokazuje niepodbarwioną komórkę.Nie można zmienić koloru komórki datagridview podczas korzystania ze źródła danych
dataGridView1.DataSource = table;
dataGridView1.Rows[0].Cells[0].Style.BackColor = Color.Yellow;
Mogę uzyskać tylko kolor, który będzie wyświetlany po początkowym załadowaniu formularza (na przykład ustawienie koloru komórki w zdarzeniu OnClick). Jeśli jednak jawnie utworzę wiersze i kolumny dla widoku, tak jak w poniższym kodzie, kolorowanie działa.
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;
Nie chcę mieć kodu w ten sposób. Czy ktoś wie, co się tutaj dzieje, co uniemożliwia mi wybarwienie komórek?
Nie pokazujesz, gdzie próbujesz pokolorować komórki - domyślam się, że znajduje się on w konstruktorze formularza po wywołaniu InitializeComponent(). Moja odpowiedź jest oparta na tym. –