删除DataGridView行时如何访问指定列以扣除对应成本
解决方案:删除DataGridView行时扣除对应成本
要实现删除行时从总计中扣除「Çmimi」列的成本,核心要点是在删除行之前先获取到该列的值——一旦执行dataGridView1.Rows.RemoveAt(item.Index),该行就会从控件中移除,再想访问就来不及了。
下面是具体的实现步骤和代码示例:
先获取要删除行的「Çmimi」列数值
- 通过行的
Cells集合,用列名(或者列索引)访问对应单元格的值 - 必须做类型转换和空值判断,避免因数据异常导致程序报错
- 通过行的
从总计变量中扣除该数值
最后执行行删除操作
示例代码如下:
// 假设你已拿到要删除的行对象item(比如通过选中行、循环遍历获取) if (item != null) { // 通过列名获取Çmimi列的值,也可以用列索引比如Cells[2],但列名更直观可靠 object cellValue = item.Cells["Çmimi"].Value; // 转换为数值类型(这里用decimal适配货币场景,你可以根据实际需求换成int/double) if (cellValue != null && decimal.TryParse(cellValue.ToString(), out decimal cost)) { // 从总计中扣除成本,假设total是你的总计变量 total -= cost; // 更新总计的显示(比如在Label控件中展示) labelTotal.Text = total.ToString("C"); // 按货币格式格式化显示 } // 最后执行删除行操作 dataGridView1.Rows.RemoveAt(item.Index); }
额外提示:
- 如果是批量删除多行,只需循环遍历选中的行,重复上述逻辑即可
- 始终对单元格值做空值和类型校验,能有效避免因单元格为空、格式错误引发的崩溃
- 如果你是用绑定数据源(比如
DataTable)的方式,也可以先从数据源中取值,删除数据源中的行后再刷新DataGridView
内容的提问来源于stack exchange,提问作者Dini Aliji
相关产品推荐
相关产品推荐

