Ich habe ein interessantes Problem. Ich versuche, eine Datentabelle als Datenquelle für eine Datagridview zu verwenden. Ich möchte einige Zellen der Tabelle färben, um verschiedene Dinge anzuzeigen, aber aus irgendeinem Grund wird die Farbe nicht angezeigt. Der folgende Code zeigt also eine ungefärbte Zelle.DataGridview Zelle Farbe kann nicht geändert werden, wenn Sie eine Datenquelle verwenden
dataGridView1.DataSource = table;
dataGridView1.Rows[0].Cells[0].Style.BackColor = Color.Yellow;
Ich kann nur eine Farbe erhalten nach der anfänglichen Form Last (zum Beispiel eine Zelle Farbe auf dem Ereignis OnClick Einstellung) angezeigt werden soll. Wenn ich jedoch die Zeilen und Spalten für die Ansicht wie im folgenden Code explizit erstelle, funktioniert die Farbgebung.
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;
Ich möchte den Code auf diese Weise nicht haben. Weiß jemand, was hier passiert, was mich daran hindert, die Zellen zu färben?
Sie zeigen nicht, wo Sie versuchen, die Zellen zu färben - ich vermute, dass es innerhalb des Formularkonstruktors ist, nachdem InitializeComponent() aufgerufen wurde. Meine Antwort basiert darauf. –