C# WINFORM,自动计算 DataGridView 中的金额:数量*单价=金额解决方法

C# WINFORM,自动计算 DataGridView 中的金额:数量*单价=金额
 C# WINFORM,自动计算 DataGridView 中的 金额:  数量*单价=金额 

如何更改数量或单价时即时修改金额?在什么事件中写?

数量或单价更改后,重新计算 数量合计和金额合计,应在什么事件中写?

(呵呵,别谈理论,代码说事!)

我在CellValueChanged事件里写如下代码,只有当单元格离开焦点时才计算,另外数量合计和金额合计重复计算,不准确.

 private void dgvStock_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if (dgvStock.Rows.Count > 0 && e.RowIndex >= 0)
            {
                if (dgvStock.Rows[e.RowIndex].Cells[e.ColumnIndex].OwningColumn.Name == "Price" || dgvStock.Rows[e.RowIndex].Cells[e.ColumnIndex].OwningColumn.Name == "Quantity")
                {
                    try
                    {
                        dgvStock.Rows[e.RowIndex].Cells["Amount"].Value = Convert.ToDecimal(dgvStock.Rows[e.RowIndex].Cells["Quantity"].Value) * Convert.ToDecimal(dgvStock.Rows[e.RowIndex].Cells["Price"].Value);

                        //txtFNo.Text = dt.Rows.Count.ToString();
                    }
                    catch { }
                }

               //数量或单价更改后,重新计算 数量合计和金额合计
                decQuantityTotal = 0.00m;
                decAmountTotal = 0.00m;
                for (int i = 0; i < dgvStock.Rows.Count; i++)
                {
                    //统计数量合计
                    try
                    {
                        decQuantityTotal += Convert.ToDecimal(dgvStock.Rows[e.RowIndex].Cells["Quantity"].Value);
                    }
                    catch { }
                    //统计金额合计
                    try
                    {
                        decAmountTotal += Convert.ToDecimal(dgvStock.Rows[e.RowIndex].Cells["Price"].Value);
                    }
                    catch { }
                }
                lblQuantityTotal.Text = decQuantityTotal.ToString();
                lblAmountTotal.Text = decAmountTotal.ToString();
            }
        }
------解决方案--------------------
金额是只有当单元格离开焦点时才计算,只能这样,你想输入完后立即计算?


数量和金额合计不能那样算的,要循环列表之后统计

参考http://topic.****.net/u/20120201/09/735e5496-dd45-454d-8fec-de391558ef7e.html
------解决方案--------------------
呵呵,前几天也用到类似这样的功能,不过我那个更变态,客户要求公式自定义。

我也是在cellchange里处理的,比较卡。

后方发现NetAdvantage的控件支持,比较强大。