2010-04-05 115 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-事件來完成,這將是,如果該行被粉刷一新,打響了價值變動後。