我想根据值突出显示 DataGridView 行。如果值被验证,那么绿色,如果没有,那么红色。
当单元格之前没有格式化时,我得到绿色和红色。但是,当我返回绿色行并更改其未经验证的值时,一个单元格不会变为红色。它保持绿色。
看图片:
1)没有任何条目
2)输入验证值
3)返回并输入错误值
你可以看到只有第一个单元格是红色的,但我希望整行都是红色的。
我正在格式化 CellValidating 事件中的单元格。这是代码:
Private Sub dgvItems_CellValidating(sender As Object, e As DataGridViewCellValidatingEventArgs) Handles dgvItems.CellValidating
If e.ColumnIndex = ValueColumnIndex Then
If Not ValidateValue(e.FormattedValue) Then
Me.dgvItems.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.LightPink
Me.dgvItems.DefaultCellStyle.SelectionBackColor = Color.LightPink
Me.dgvItems.DefaultCellStyle.SelectionForeColor = Color.Black
e.Cancel = True
Else
Me.dgvItems.DefaultCellStyle.SelectionBackColor = SystemColors.Highlight
Me.dgvItems.DefaultCellStyle.SelectionForeColor = SystemColors.HighlightText
Me.dgvItems.Rows(rowIndex).DefaultCellStyle.BackColor = Color.LightGreen
Me.dgvItems.Rows(rowIndex).DefaultCellStyle.ForeColor = Color.Black
End If
End If
End Sub
任何帮助表示赞赏。谢谢。