У меня есть Datagridview и вы хотите изменить цвет строк так: Все строки, имеющие одинаковое значение в первом столбце, должны иметь один и тот же цвет.
Я сделал это, чтобы достичь этого:DefaultCellStyle.Backcolor дает мне неправильный цвет в DataGridView в C#
private void AlternatingRows()
{
foreach (DataGridViewRow row in dataGridView_daten.Rows)
{
if (row.Index > 0)
{
if (row.Cells[0].Value.ToString().Substring(0, 5) == dataGridView_daten.Rows[row.Index - 1].Cells[0].Value.ToString().Substring(0, 5))
{
row.DefaultCellStyle.BackColor = dataGridView_daten.Rows[row.Index - 1].DefaultCellStyle.BackColor;
}
else if (dataGridView_daten.Rows[row.Index - 1].DefaultCellStyle.BackColor == Color.AliceBlue)
{
row.DefaultCellStyle.BackColor = Color.FromArgb(226, 241, 254);
}
else if (dataGridView_daten.Rows[row.Index - 1].DefaultCellStyle.BackColor == Color.FromArgb(226, 241, 254))
{
row.DefaultCellStyle.BackColor = Color.AliceBlue;
}
}
}
}
Так в основном, если значение первой ячейки такой же, как в строке выше, цвет должен быть таким же ... Я называю этот метод после того, как я связан Data to DataGridView ... Я также попытался назвать это в событии CellFormatting
, но это не сработало. Моя проблема в том, что строки все еще имеют одинаковый цвет. Когда я его отлаживаю, DefaultCellStyle.BackColor
пуст ... Почему возврат DefaultCellStyle.BackColor
пуст?
Как что положение else if (dataGridView_daten.Rows[row.Index -1].DefaultCellStyle.BackColor == Color.FromArgb(226, 241, 254))
If
никогда не будет правды ...