[ad_1]
你好。
当我在 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
[ad_2]
コメント