无法更改DataGridView单元格的背景颜色

时间:2019-01-04 12:45:55

标签: c# winforms datagridview datagridviewrow datagridviewcellstyle

我试图遍历datagridview中的行,并根据其存储值更改单个单元格的颜色。

我尝试了下面的两种方法,但都无法正常工作,也不会引发异常。

1:

row.Cells[8].Style.BackColor = Color.Red;

2:

dgvProperties[row.Index, 8].Style.BackColor = Color.Red;

3(自编写此问题以来,另一种尝试也无效):

dgvProperties.Rows[row.Index].Cells[8].Style.BackColor = Color.Red;

任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:0)

尝试一下:

  

row.Cells [i] .Style [“ background-color”] =“红色”;

如果仍然无法正常工作,您将以错误的方式获取行

答案 1 :(得分:0)

尝试一下,我想这就是您想要的。

for(int i = 0; i < dataGridView1.Rows.Count; i++)
        {
            int val = Int32.Parse(dataGridView1.Rows[i].Cells[2].Value.ToString());
            if (val < 5)
            {
               dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Red;
            }

积分:here

答案 2 :(得分:0)

这是VB.NET工作代码示例,但是,将其应用于您的C#应用​​程序很简单:

Private Sub dgvResults_DataBindingComplete(
        ByVal sender As Object,
        ByVal e As System.Windows.Forms.DataGridViewBindingCompleteEventArgs
        ) Handles dgvResults.DataBindingComplete

    Dim daysOpenThreshold As Integer = 10 'Some trivial value for this example.

    For Each r As DataGridViewRow In dgvResults.Rows

        If CInt(r.Cells(2).Value) >= daysOpenThreshold Then

            Dim style As New DataGridViewCellStyle
            style.BackColor = Color.Red
            style.ForeColor = Color.White

            r.DefaultCellStyle = style

        End If

    Next

End Sub