更改For Each中前一行的颜色

时间:2015-10-01 20:12:57

标签: vb.net datagridview

我有一个填充的DatagridView和以下代码来检查行之间的时间间隔。

For Each dr As DataGridViewRow In Me.DataGridViewHistoric.Rows
    If i = 0 Then
        TimeA = CUInt(dr.Cells("UNIX_time").Value)
    Else
        TimeB = CUInt(dr.Cells("UNIX_time").Value)
        If TimeB > TimeA + (Offset * 3600) Then
            'Found - Change color
            dr.DefaultCellStyle.ForeColor = Color.Blue

        End If
        TimeA = TimeB
    End If

i += 1
Next

这没关系,但现在我需要更改找到的上一行的颜色。

我无法弄清楚如何达到这个目标。

1 个答案:

答案 0 :(得分:1)

而不是使用"为每个"使用"用于x"

For x as Integer = 0 to Me.DataGridViewHistoric.Rows.count - 1
    If x = 0 Then
        TimeA = CUInt(DataGridViewHistoric.Rows(x).Cells("UNIX_time").Value)
    Else
        TimeB = CUInt(DataGridViewHistoric.Rows(x).Cells("UNIX_time").Value)
        If TimeB > TimeA + (Offset * 3600) Then
            DataGridViewHistoric.Rows(x).DefaultCellStyle.ForeColor = Color.Blue
            DataGridViewHistoric.Rows(x -1).DefaultCellStyle.ForeColor = Color.Red
        End If
        TimeA = TimeB
    End If
Next

语法可能不是100% - 我是从内存中做到的,但你应该得到要点。