datagridview总计计算问题

编程


你好。
当我在 datagridview 中插入小计时,代码会重新计算总计更改
我的循环。 数数一切
我需要你的帮助或你的想法。

我尝试过的:

VB
Private Sub BtnSum_Click(sender As Object, e As EventArgs) Handles BtnSum.Click
    Dim somme As Double
    For x As Integer = 0 To DgvDevisClent.Rows.Count - 1
        somme += CType(DgvDevisClent.Rows(x).Cells(4).Value, Double)
    Next
    somme = String.Format("{0:##,##0.000}", CDbl(somme.ToString))
    DgvDevisClent.Rows.Insert(DgvDevisClent.CurrentRow.Index + 1, 1)
    DgvDevisClent.CurrentCell = DgvDevisClent.Rows(DgvDevisClent.CurrentRow.Index + 1).Cells(0)
    DgvDevisClent.CurrentRow.Cells(4).Value = somme
    DgvDevisClent.Focus()
End Sub

解决方案1

您的代码中有以下行:

VB
somme = String.Format("{0:##,##0.000}", CDbl(somme.ToString))

因此,您将 double 值转换为字符串,以便随后可以将其转换回 double,以便在调用中使用它 String.Format,这有点毫无意义。 但随后您可以使用该字符串来设置 somme,它被声明为双精度。 所有这些都毫无意义,因此删除该行代码。

解决方案2

根据您的评论 –

引用:

当我使用 datagridview 事件刷新代码时,标签中的总变化
例子
第一件商品 1 美元
第二件 2 美元
小计 3 美元
我的标签显示 $6 或显示 $3 的位置

当您刷新数据网格时,您不会清除原始总计以显示刷新的总计 –

VB
'Clear your label of all totals...
YourLabel.Text = ""

'Recalculate the total and update your label with the correct total...
Dim somme As Double
For x As Integer = 0 To DgvDevisClent.Rows.Count - 1
    somme += CType(DgvDevisClent.Rows(x).Cells(4).Value, Double)
Next
somme = String.Format("{0:##,##0.000}", CDbl(somme.ToString))

'Display the updated total in your label, PAY ATTENTION to the above solution and comments though...
YourLabel.Text = somme

コメント

タイトルとURLをコピーしました