如何从多个DataGridViewCell添加值并将它们输出到TextBox?

时间:2016-08-02 08:50:21

标签: c# datagridview

我被困在这里。
 我有一个8列的DataGridView(第7个等待用户输入,第8个进行一些数学运算)。
这是父表格

Parent Form

当我点击" Adauga"这意味着"添加",Total Kcal文本框应将其值更新为
kcal(列)*(cantitate = quantity)和Pret Total = Total Price更新其值为pret = Price(列) *(cantitate)
它这样做,但只有一行。让我解释一下:正如你在上面看到我点击了第3个(从上到下)按钮它返回618,10(价格是10 * 1数量)(kcal是618 * 1数量)但如果我也点击第一个按钮,看They don't add

这些值不会添加到以前的值中,我不知道如何执行此操作。 这是代码:

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
        var senderGrid = (DataGridView)sender;
        if (senderGrid.Columns[e.ColumnIndex] is DataGridViewButtonColumn && e.RowIndex >= 0)
        {
            var pret = dataGridView1.Rows[e.RowIndex].Cells[3].Value;
            var kcal = dataGridView1.Rows[e.RowIndex].Cells[4].Value;
            var qt = dataGridView1.Rows[e.RowIndex].Cells[6].Value;
            int qty = int.Parse(qt.ToString());
            int kca = int.Parse(kcal.ToString()); 
            int pre = int.Parse(pret.ToString()); 
            int kcalTotal = 0, pretTotal = 0;
            kcalTotal = kcalTotal + (qty * kca); 
            pretTotal = pretTotal + (qty * pre);
            totalPR.Text = pretTotal.ToString();
            totalKC.Text = kcalTotal.ToString();
        }
    }

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,您需要总结所点击行的值。所以在你第一次点击之后,价格TextBox应该显示10,在下一个23之后。如果这就是你的问题的意思,你只需要添加几行:

变化

int kcalTotal = 0, pretTotal = 0;

int kcalTotal = 0, pretTotal = 0;
int.TryParse(totalKC.Text, out kcalTotal);
int.TryParse(totalPR.Text, out pretTotal);