我有这个代码(gridview,cellvaluechanged事件):
private void gv1_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
{
string value1 = Convert.ToString(gv1.GetRowCellValue(gv1.FocusedRowHandle, "unitvalue"));
object cellValue = Convert.ToUInt32(value1) * Convert.ToInt32(days_worked);
gv1.SetRowCellValue(gv1.FocusedRowHandle, "totalvalue", cellValue);
}
“days_worked”是从标签控件获取的值,单元格的值不会改变, 出现以下错误:mscorlib.dll中出现未处理的“System.StackOverflowException”类型异常
“totalvalue”是我数据库的一列
请帮助,谢谢!
答案 0 :(得分:2)
如文档中所述
CellValueChanged事件将响应单元格的值被更改而触发。下面的列表给出了引发此事件的可能原因:
- 最终用户在更改编辑器后关闭了就地编辑器 值。
- 使用提供的方法更改了单元格的值 视图。例如,可以使用SetRowCellValue方法 目的
因此,您需要将代码更改为建议文档
private void gv1_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
{
if (e.Column.Caption != "totalvalue") return; // if event in fire from cells in column "totalvalue"
string value1 = Convert.ToString(gv1.GetRowCellValue(gv1.FocusedRowHandle, "unitvalue"));
object cellValue = Convert.ToUInt32(value1) * Convert.ToInt32(days_worked);
gv1.SetRowCellValue(gv1.FocusedRowHandle, "totalvalue", cellValue);
}