我想從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