我的datagridview itemDelete函数:
this.dgv_items.RowsRemoved += this.dgv_items_itemDelete;
private void dgv_items_itemDelete(object sender, DataGridViewRowsRemovedEventArgs e)
{
try
{
int row = e.RowIndex;
string name = dgv_items.Rows[row].Cells[0].Value.ToString();
deleteFromDB(name);
}
catch (Exception) { }
}
但是当我们到达此代码时,该行将被删除,这意味着dgv_items.Rows[row].Cells[0].Value
获取该行的下一行的值。
我想获取已删除行的Cells[0]
值,因此我也可以从数据库文件中删除该项。我怎样才能做到这一点?
答案 0 :(得分:8)
您可以改为处理UserDeletingRow
事件。请注意,它支持事件取消。
答案 1 :(得分:1)
使用RowEnter事件选择行时,可以暂时将单元格的值保存在变量中:
private void dgv_items_RowEnter(object sender, DataGridViewCellEventArgs e)
{
try
{
// tempValue is a class var
tempValue = dgv_items.Rows[e.RowIndex].Cells[0].Value.ToString();
}
catch (Exception ex) {
MessageBox.Show(ex.Message);
}
}
然后在删除之前检索tempValue。