Hola a todos, tengo un DataGridView llamado "datacartera" con dos columnas, una llamada "enviar" y la otra "monto", enviar es de tipo CheckBox y en la columna "monto" siempre contiene valores decimales. Lo que necesito lograr es que se sumen unicamente los valores de las filas seleccionadas desde la columna "enviar" , es decir si tengo tres filas, por ejemplo:
enviar monto
x 120,05
30,63
x 140,89
Selecciono la primera y la tercera, necesito que al presionar el btnfinalizar(Botón) me devuelva el valor sumado al ltotal (TextBox), a continuación les detallo mi código que me tira el sig. error al presionar el Botón:
Excepción no controlada del tipo 'System.InvalidCastException' en Microsoft.VisualBasic.dll
Información adicional: La conversión de la cadena "#0.00" en el tipo 'Integer' no es válida.
ltotal.Text = total.ToString("#0.00")
Mi Código:
Private Sub datacartera_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles datacartera.CellContentClick
If e.ColumnIndex = Me.datacartera.Columns.Item("enviar").Index Then
Dim chkcell As DataGridViewCheckBoxCell = Me.datacartera.Rows(e.RowIndex).Cells("enviar")
chkcell.Value = Not chkcell.Value
End If
End Sub
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Private Sub btnfinalizar_Click(sender As Object, e As EventArgs) Handles btnfinalizar.Click
For Each row As DataGridViewRow In datacartera.Rows
Dim marcado As Boolean = Convert.ToBoolean(row.Cells("enviar").Value)
If marcado Then
Dim suma_marcado As String
Dim total As Decimal = 0D
suma_marcado = row.Cells("monto").Value
'Eliminamos los puntos
suma_marcado = Replace(suma_marcado, ".", "")
'Reemplazamos las comas
suma_marcado = Replace(suma_marcado, ",", ".")
total += Val(suma_marcado)
End If
Next
ltotal.Text = total.ToString("#0.00")
End Sub
Muchas gracias de antemano y espero puedan enviarme el código correcto. Saludos