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();
}
在该代码中,目的是删除一个选定的行,该行在名为dgvSelected
的datagridview
中具有商品名称和价格,删除后,被删除行的价格将减去当前的总价。问题是,当它来到最后一行时,如果它被删除,它就会在"price -= Convert.ToDecimal(dgvSelected.SelectedCells[3]. value . tostring());"部分中出现错误,说"对象引用未设置为对象的实例"。
在您的代码中,您是在从实际价格中减少价格之前删除行,因此存在"对象引用未设置为对象的实例"的例外,请尝试在扣除价格后删除行
在删除该行之前先计算一下——那么该行仍然存在
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将为空,因此例外。