C# 获取已删除DataGridView行的单元格值
My datagridview itemDelete函数:C# 获取已删除DataGridView行的单元格值,c#,winforms,datagridview,C#,Winforms,Datagridview,My 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
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
将获取行中下一行的值
我想获取已删除行的
单元格[0]
值,以便也可以从数据库文件中删除该项。如何实现这一点?使用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。您可以处理该事件。请注意,它支持事件取消。顺便说一句,您应该删除try/catch块。如果有问题,你永远不会知道是什么。@JohnSaunders对标题感到抱歉,真的很累。我知道try/catch块可能有问题,但是这个程序是供个人快速使用的,所以我不太在乎atm。但我同意这是一个坏习惯。你参加过这个活动吗?(还支持事件取消)@LuisQuijada Genius。。成功了!虽然我不能这样回答。谢谢你;创造性,我喜欢。这可能会奏效,但正如路易斯所建议的那样,UserDeletingRow事件是唯一合乎逻辑的解决方案。不过还是要感谢:DFYI,简单地显示或记录
ex.Message
是不好的做法。请改用ex.ToString()
,因为它会显示完整的异常、堆栈跟踪和任何内部异常。