[ad_1]
أهلاً.
عندما أقوم بإدراج إجمالي فرعي في datagridview، يقوم الكود بإعادة حساب إجمالي التغييرات
حلقة بلدي. عد كل شيء
أحتاج إلى مساعدتكم أو أفكاركم من فضلك.
ما حاولت:
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
لديك السطر التالي في التعليمات البرمجية الخاصة بك:
somme = String.Format("{0:##,##0.000}", CDbl(somme.ToString))
لذلك، تقوم بتحويل القيمة المزدوجة إلى سلسلة، بحيث يمكنك بعد ذلك تحويلها مرة أخرى إلى قيمة مزدوجة، لاستخدامها في استدعاء String.Format
، وهو أمر لا معنى له بعض الشيء. لكنك تستخدم بعد ذلك تلك السلسلة لتعيين قيمة somme
، والتي تم الإعلان عنها على أنها مزدوجة. كل هذا لا معنى له، لذا قم بإزالة هذا السطر من التعليمات البرمجية.
الحل 2
بناء على تعليقك –
يقتبس:عندما أقوم بتحديث الكود باستخدام حدث datagridview، فإن إجمالي التغييرات في التصنيف الخاص بي
مثال
العنصر الأول 1 دولار
العنصر الثاني 2 دولار
المجموع الفرعي 3 دولار
تعرض علامتي 6 دولارات أو مكانًا لعرض 3 دولارات
أنت لا تقوم بمسح الإجمالي الأصلي لإظهار الإجمالي الذي تم تحديثه عند تحديث شبكة البيانات الخاصة بك –
'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]
コメント