【解決方法】総計データグリッドビューの計算問題


こんにちは。
データグリッドビューに小計を挿入すると、コードは総計の変更を再計算します。
私のループ。 すべてを数える
あなたの助けやアイデアが必要です。

私が試したこと:

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、これは double として宣言されます。 これらはすべて意味がないので、そのコード行を削除してください。

解決策 2

あなたのコメントに基づいて –

引用:

datagridview イベントでコードを更新すると、ラベルの総計が変更されます

最初のアイテム $1
2 番目の項目 $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をコピーしました