我正在从XML文档导入数据以填充DataGridView。在导入过程中,我改变了一些单元格的背景颜色。但是,当我添加行时,单元格的颜色没有正确更新(我得到一个灰色单元格)。我不确定是否有一个地方我应该使DataGridView无效以使单元格正确显示。
我应该提一下,我的DataGridView不是数据绑定。
一些参考代码:
DataGridViewRow row = (DataGridViewRow)dataGridView1.Rows[0].Clone();
for(int j = 0; j < dataGridView1.ColumnCount; ++j)
{
if(j == 2)
{
row.Cells[j + 1].Style.BackColor = layer.Color;
}
}
this.dataGridView1.Rows.AddRange(row);
答案 0 :(得分:1)
您可能希望覆盖CellFormatting或RowPostPaint事件并在那里执行。
我认为在尝试为DataGridView着色时遇到了同样的问题,这就是我解决它的方法。
private void gridView_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
foreach (DataGridViewRow row in gridView.Rows)
if (row.Cells["Status"].Value.ToString() == "Posted")
if (row.Cells["Priority"].Value.ToString() == "High")
foreach (DataGridViewCell cell in row.Cells)
cell.Style.BackColor = Color.LightPink;
else
foreach (DataGridViewCell cell in row.Cells)
cell.Style.BackColor = Color.Yellow;
}
CellFormatting:
private void gridItems_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.CellStyle.BackColor != Color.Yellow && e.CellStyle.BackColor != Color.LightPink)
e.CellStyle.BackColor = Color.LightGreen;
}
我希望这有帮助!