List<CriticalError> troubles = new List<CriticalError>(); // связывается с таблицей
this.dataGridView.DataSource =
troubles.GetRange(0,troubles.Count); //чтобы не выдавало ошибку индекс -1
for (int i = 0; i < this.dataGridView.Rows.Count - 1; i++)
{
if (Convert.ToBoolean(this.dataGridView.Rows[i].Cells["Reaction"].Value) == false) // если CheckBox == false , тогда красим в красный
{
this.dataGridView.Rows[i].DefaultCellStyle.BackColor = Color.Red;
}
}
问题是在循环中dataGridView.Rows[i].DefaultCellStyle.BackColor它采用了所需的颜色,而在退出循环后,一切都是默认的。请告诉我错误在哪里
for (int i = 0; i < this.dataGridView.Rows.Count - 1; i++)
{
if (Convert.ToBoolean(this.dataGridView.Rows[i].Cells["Reaction"].Value) == false)
{
for (int j = 0; j <this.dataGridView.Rows[i].Cells.Count - 1; j++)
{
this.dataGridView.Rows[i].Cells[j].Style.BackColor = Color.Red;
}
}
}
这不适用于单元格,您需要在 中指定特定的单元格
Cells,而不仅仅是字符串。这会将行更改为红色:在您的情况下,要为单元格着色,请这样写:
为了使颜色变化起作用
DataSource,您需要调用事件上的方法DataBindingComplete,您将获得以下代码: