me encontre con el problema de que no podia irme a una linea " row" especifica en el datagridview .
primero lo que habia hecho era desactivar la opcion de que el usuario pudiera agregar una nueva fila funciono con el comando
"Me.dtg_factura.AllowUserToAddRows = False" con esta instruccion se quedaba en la row que deseaba cuando empesaba la factura, pero a medida que ingresaba una nueva linea existia el problema de que el cursor se pasaba a la siguiente row y al momento de querer totalizar la factura no se movia a la siguiente lineas solo se quedaba en la ultima linea ingresada en el while . para poder resolver este problema encontre una propiedad en el datagridview en la que si me dejaba mover entre las diferente lineas este es el codigo' calcular el subtotal de la factura
Private Sub subtotal()
Dim renglon As Integer
renglon = Me.dtg_factura.Rows.Count
Dim i As Integer
i = 0
Me.txt_subtotal.Text = 0
Me.txt_descuento.Text = 0
Me.txt_impto.Text = 0
Me.txt_total.Text = 0
While i < renglon
dtg_factura.Rows(i).Selected = True
dtg_factura.CurrentCell = dtg_factura.Rows(i).Cells(0)
Me.txt_subtotal.Text = (CDbl(Me.txt_subtotal.Text) + Me.dtg_factura.CurrentRow.Cells("valor").Value).ToString
Me.txt_descuento.Text = (CDbl(Me.txt_descuento.Text) + Me.dtg_factura.CurrentRow.Cells("desc_valor").Value).ToString
Me.txt_impto.Text = (CDbl(Me.txt_impto.Text) + Me.dtg_factura.CurrentRow.Cells("impto_valor").Value).ToString
Me.txt_total.Text = (CDbl(Me.txt_impto.Text) + Me.dtg_factura.CurrentRow.Cells("impto_total").Value).ToString
i = i + 1
' Me.dtg_factura.CurrentCell.Value = i + 1
'me.dtg_factura.CurrentRow.v
End While
Me.dtg_factura.Refresh()
End Sub