我想从datagridviewcell中取值并计算并更改另一个单元格的值。DataGridView CellContentChanged事件 - StackOverflow异常 - 奇怪的情况
出于某种原因,我遇到堆栈溢出异常,代码:
private void grdWarehouseCounts_CellContentChanged(object sender, DataGridViewCellEventArgs e)
{
// calculate variance
DataGridView sendergrid = (DataGridView)sender;
if (sendergrid.SelectedCells[0].ColumnIndex == 3)
{
decimal Qty = Convert.ToDecimal(sendergrid.Rows[sendergrid.SelectedCells[0].RowIndex].Cells[3].Value);
decimal Count = Convert.ToDecimal(sendergrid.Rows[sendergrid.SelectedCells[0].RowIndex].Cells[4].Value);
sendergrid.Rows[sendergrid.SelectedCells[0].RowIndex].Cells[4].Value = Qty - Count;
}
}
这里是电网:
我花了很多时间试图弄清楚这它让我疯狂。
其他人可以看到我做错了什么,因为我对此很新颖吗?
任何常见的陷阱?
克里斯
我不是太熟悉的WinForms的东西,但有可能你在放'grdWarehouseCounts_CellContentChanged '通过改变if语句最后一行中的单元格值,从它自身内部发生事件? – 2013-03-08 23:03:35
使用if(sendergrid.SelectedCells [0] .ColumnIndex == 3) 应该防止这种情况,对吗?列索引必须是3 - 并且im修改列是4 – 2013-03-08 23:04:29
我认为@AbeMiessler提到的正是发生了什么。 – hattenn 2013-03-08 23:04:30