1

我正在尝试遍历 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;

任何帮助表示赞赏。

4

3 回答 3

1

试试这个,我想这就是你要找的..

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;
            }

学分:这里

于 2019-01-04T15:07:33.783 回答
0

尝试这个:

row.Cells[i].Style["background-color"] = "red";

如果无论如何都不起作用,那么您会以错误的方式获得该行

于 2019-01-04T12:50:55.730 回答
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
于 2019-01-04T17:29:49.250 回答