datagridview /数学问题. .请帮助

本文关键字:帮助 问题 datagridview | 更新日期: 2023-09-27 18:07:57

private void Remove_Click(object sender, EventArgs e)
    {
       dgvSelected.Rows.Remove(dgvSelected.CurrentRow);
       price = Convert.ToDecimal(Price.Text);
       price -= Convert.ToDecimal(dgvSelected.SelectedCells[3].Value.ToString());
       Price.Text = price.ToString();         
    }

在该代码中,目的是删除一个选定的行,该行在名为dgvSelecteddatagridview中具有商品名称和价格,删除后,被删除行的价格将减去当前的总价。问题是,当它来到最后一行时,如果它被删除,它就会在"price -= Convert.ToDecimal(dgvSelected.SelectedCells[3]. value . tostring());"部分中出现错误,说"对象引用未设置为对象的实例"。

datagridview /数学问题. .请帮助

在您的代码中,您是在从实际价格中减少价格之前删除行,因此存在"对象引用未设置为对象的实例"的例外,请尝试在扣除价格后删除行

在删除该行之前先计算一下——那么该行仍然存在

private void Remove_Click(object sender, EventArgs e)
    {
       price = Convert.ToDecimal(Price.Text);
       price -= Convert.ToDecimal(dgvSelected.SelectedCells[3].Value.ToString());
       Price.Text = price.ToString();         
       dgvSelected.Rows.Remove(dgvSelected.CurrentRow);
    }

在删除CurrentRow之前进行数学运算。最后,当你删除所有的行CurrentRow将为空,因此例外。