【问题标题】:datagridview/math problem.... please helpdatagridview/数学问题....请帮忙
【发布时间】:2011-09-09 04:17:58
【问题描述】:
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 中删除具有项目名称和价格的选定行,并且在删除后,将删除行的价格减去当前总数。问题是当它来到最后一行并且如果它被删除时,它会出错,说“对象引用未设置为对象的实例”。在“价格 -= Convert.ToDecimal(dgvSelected.SelectedCells[3].Value.ToString());”部分。

【问题讨论】:

  • 你还面临同样的问题吗?

标签: c# datagridview subtraction


【解决方案1】:

在您的代码中,您在从实际价格中降低价格之前删除了该行,因此“对象引用未设置为对象的实例”的异常尝试在扣除价格后删除该行。

【讨论】:

    【解决方案2】:

    在删除该行之前进行数学运算 - 然后它仍然存在。

    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);
        }
    

    【讨论】:

      【解决方案3】:

      在删除 CurrentRow 之前执行数学运算。 最后,当您删除所有行时 CurrentRow 将为 null 因此异常。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-29
        • 2014-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多