我正在暴露我的问题... 我想给datagridview的行上色,以'LOTTO'列的值作为参考,直到它是相同的,交替两种颜色以方便阅读。
如您所见,它们通常从4变为4,但可以有所不同。因此,我要检查“ LOTTO”值
想法?谢谢!答案 0 :(得分:1)
我做了很多次,在您的情况下,它使用的是这样的功能:
Private Sub PaintAccValues()
Dim Col1 As Color = Color.Beige
Dim Col2 As Color = Color.Aquamarine
Dim aCol As Color = Col1
If Me.dgv.Rows.Count > 0 Then
Me.dgv.Rows(0).DefaultCellStyle.BackColor = aCol ' color background of the first row
Dim RowVal As String = Me.dgv.Rows(0).Cells("Lotto").Value
For ir = 1 To Me.dgv.Rows.Count - 1 ' notice we're starting on the 2nd line!
If RowVal = Me.dgv.Rows(ir).Cells("Lotto").Value Then ' following rows are same
' do nothing
Else ' following rows differ (at the given column 'Lotto')
If aCol = Col1 Then ' change colors
aCol = Col2
Else
aCol = Col1
End If
End If
Me.dgv.Rows(ir).DefaultCellStyle.BackColor = aCol ' color a row's background
RowVal = Me.dgv.Rows(ir).Cells("Lotto").Value ' set new actual value for a next row comparison
Next
End If
End Sub
您可以简单地称呼它:
Call PaintAccValues()
在某个方便的地方,例如,可能是DataBindingComplete()
事件。
很遗憾,我不知道您的DataGridView
或列的名称(您未提供任何代码)。您可以将其修改为仅对某些单元格进行着色等。也可以添加参数(DataGridViewName和ColumnName或ColumnIndex)并使它与任何DataGridView
一起使用。