我如何更改 datagridview 中特定行的颜色,其中单元格值是每天的第一个时间戳?
How can i change color of particular row in datagridview, where a cell value is first timestamp of each day?
我有一个数据网格视图,其中包含按日期和时间排序的大约一年的一系列报告
列表如下
2015 年 1 月 27 日 10:56:32 上午
2015 年 1 月 27 日 11:56:41 上午
2015 年 1 月 27 日 12:54:42 下午
2015 年 1 月 28 日 8:54:54 上午
2015 年 1 月 28 日 9:02:39 下午
2015 年 1 月 29 日 11:02:47 上午
29/1/2015 9:03:00 下午
2015 年 1 月 30 日 9:03:00 下午
我如何突出显示或更改每个新日系列开始的特定行的颜色?我的意思是突出显示行
新的一天开始的地方,27 号、28 号等。到目前为止我正在尝试这样
Private Sub myFindRow()
Dim sTime As DateTime = Me.myDataset.myReportTable.Compute("Max(reporttime)", "")
Dim eTime As DateTime = Me.myDataset.myReportTable.Compute("Min(reporttime)", "")
Dim cTime As DateTime = sTime
For Each Day As DateTime In Enumerable.Range(0, (eTime - sTime).Days).Select(Function(i) sTime.AddDays(i))
changeRowColor()
Next Day
End Sub
Private Sub changeRowColor()
For Each myRow As DataGridViewRow In Me.myDatagridView.Rows
Dim myTime As DateTime
myTime = myRow.Cells(2).Value
Next
End Sub
但不知道如何继续。有什么指导吗?
我认为您不需要计算任何东西。我会更改第一行的颜色,然后循环所有行并将日期与前一行进行比较。如果日期不同,那么我会更改行颜色。
像这样
Private Sub myFindRow()
' Change the color of the first row
For rowIndex As Integer = 1 To Me.myDatagridView.Rows.Count-1
Dim curRow As DataGridViewRow = Me.myDatagridView.Rows(i)
Dim prevRow As DataGridViewRow = Me.myDatagridView.Rows(i-1)
If CType(curRow.Cells(2).Value, DateTime).Date <> CType(prevRow.Cells(2).Value).Date Then
' Change the color of row curRow
End If
Next
End Sub
我有一个数据网格视图,其中包含按日期和时间排序的大约一年的一系列报告
列表如下
2015 年 1 月 27 日 10:56:32 上午
2015 年 1 月 27 日 11:56:41 上午
2015 年 1 月 27 日 12:54:42 下午
2015 年 1 月 28 日 8:54:54 上午
2015 年 1 月 28 日 9:02:39 下午
2015 年 1 月 29 日 11:02:47 上午
29/1/2015 9:03:00 下午
2015 年 1 月 30 日 9:03:00 下午
我如何突出显示或更改每个新日系列开始的特定行的颜色?我的意思是突出显示行
新的一天开始的地方,27 号、28 号等。到目前为止我正在尝试这样
Private Sub myFindRow()
Dim sTime As DateTime = Me.myDataset.myReportTable.Compute("Max(reporttime)", "")
Dim eTime As DateTime = Me.myDataset.myReportTable.Compute("Min(reporttime)", "")
Dim cTime As DateTime = sTime
For Each Day As DateTime In Enumerable.Range(0, (eTime - sTime).Days).Select(Function(i) sTime.AddDays(i))
changeRowColor()
Next Day
End Sub
Private Sub changeRowColor()
For Each myRow As DataGridViewRow In Me.myDatagridView.Rows
Dim myTime As DateTime
myTime = myRow.Cells(2).Value
Next
End Sub
但不知道如何继续。有什么指导吗?
我认为您不需要计算任何东西。我会更改第一行的颜色,然后循环所有行并将日期与前一行进行比较。如果日期不同,那么我会更改行颜色。
像这样
Private Sub myFindRow()
' Change the color of the first row
For rowIndex As Integer = 1 To Me.myDatagridView.Rows.Count-1
Dim curRow As DataGridViewRow = Me.myDatagridView.Rows(i)
Dim prevRow As DataGridViewRow = Me.myDatagridView.Rows(i-1)
If CType(curRow.Cells(2).Value, DateTime).Date <> CType(prevRow.Cells(2).Value).Date Then
' Change the color of row curRow
End If
Next
End Sub