2010-04-05 84 views
3

当我在DataGridView绑定的DataTable中以编程方式更改值时,适当的CellValueChanged事件不会触发DataGridView。我试图改变单元格的背景颜色,当DataTable填充数据时没有迭代每行并检查每个值时,单元格值。DataGridView.CellValueChanged未触发绑定DataGridView

回答

2

您正在更改DataTable直接和期望DataGridView的事件被解雇? 我建议你编程更改单元格的值:

DataGridView[ColumnIndex, RowIndex].Value = NewValue; 

此外,你将不得不调用DataGridView.CommitEdit()将值提交到DataTable。这应该会触发CellValueChanged事件。

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.cellvaluechanged.aspx

+4

是的,我希望它会着火。单元格中显示的值正在改变。 – Wesley 2010-04-05 18:48:00

+2

仅当将新值从DGV推送到DT时,才会触发CellValueChanged事件。没有其他方式。 – Vivek 2010-04-05 18:52:07

+0

我不介意倒票,但一个理由肯定会有所帮助。 – Vivek 2010-04-05 18:58:58

0

改变细胞背景颜色应在RowPrePaint-事件来完成,这将是,如果该行被粉刷一新,打响了价值变动后。