I have a DataGridView bound to a DataTable. When the user changes a value in a cell, I'd like to change the background color of that cell. If the user changes the value back to the original, saved value, I'd like to change the color back to the original.
I tried to implement this will a nested loop in the CellValueChanged event handler of the grid that compares the cells of the datagridview with the "cells" in the datatable, like this (CATColumns() is an array that contains the column names alligned with the datatable (and grid)):
However, the color didn't change as I made changes. When I changed the code to this:
I noticed, much to my surprise, that there is never any difference between the values in the grid and the ones in the datatable! How do I implement what I'm trying to do?
Thanks!
I tried to implement this will a nested loop in the CellValueChanged event handler of the grid that compares the cells of the datagridview with the "cells" in the datatable, like this (CATColumns() is an array that contains the column names alligned with the datatable (and grid)):
VB.NET:
For r As Integer = 0 To DT.Rows.Count - 1
For c As Integer = 0 To DT.Columns.Count - 1
IF DT.Rows(r).Item(CATColumns(c)).ToString() <> DGV.Item(c, r).Value.ToString() Then
DGV.Item(c, r).Style.BackColor = Color.Yellow
Else
DGV.Item(c, r).Style.BackColor = Color.White
End If
Next
Next
However, the color didn't change as I made changes. When I changed the code to this:
VB.NET:
For r As Integer = 0 To DT.Rows.Count - 1
For c As Integer = 0 To DT.Columns.Count - 1
MsgBox(DT.Rows(r).Item(CATColumns(c)).ToString() & "|" & DGV.Item(c, r).Value.ToString())
Next
Next
I noticed, much to my surprise, that there is never any difference between the values in the grid and the ones in the datatable! How do I implement what I'm trying to do?
Thanks!