我想根據值突出顯示DataGridView行。如果數值被驗證,那麼綠色如果不是然後紅色。
當單元格未被格式化之前,我得到綠色和紅色。但是,當我回到綠色行並更改其未驗證的值時,一個單元格不會變爲紅色。它保持綠色。
看到的圖片:
1)在不輸入任何條目
2)驗證的值
3)回去,並進入了錯誤的值
正如你所看到的只是第一個單元是紅色的,但我希望整行是紅色的。
我在CellValidating事件中格式化單元格。這裏的代碼:
突出顯示DataGridView行
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
任何幫助表示讚賞。謝謝。