Hello,
I would like for WinForms Datagrid cells whose value has changed to
stand out in some way - background color, font etc. I know that I can
override the paint event to change cell appearance, but paint is not
useful to me for detecting when cell contents have changed. I also know
that I can handle events from the datasource to detect data changes,
but that doesn't help me with cell formatting. I am at a loss of how to
get both. Any info is highly appreciated.
Thanks,
Lev
Bart Mermuys - 26 Nov 2005 12:33 GMT
Hi,
> Hello,
>
[quoted text clipped - 5 lines]
> but that doesn't help me with cell formatting. I am at a loss of how to
> get both. Any info is highly appreciated.
If you talking about the DataGrid (not DataGridView), then yes you need to
override the Paint event, but it's the Paint event of each
DataGridTextBoxColumn you need to override.
Once that event fires it can tell you the ColumnName and RowIndex and with
that information you can find if there are any changes in that cell:
DataView dv =
(DataView)((CurrencyManager)BindingContext[dataGrid1.DataSource,
dataGrid1.DataMember]).List;
DataRow dr = dv[RowIndex].Row;
if ( dr[ColumnName, DataRowVersion.Original] != dr[ColumnName,
DataRowVersion.Current] )
{
// datatable cell changed, paint with different color
}
HTH,
Greetings
> Thanks,
>
> Lev