Si el botón de calcular tiene Rows.Add(), pues es lógico que cada vez que presione el botón, más filas se van a agregar. Es exactamente lo que usted ha programado y por lo tanto es exactamente lo que obtiene.
¿No desea agregar filas si ya se ha presionado el botón? Puede usar una variable a nivel de formulario que sirva para controlar esto.
Por cierto, este es el foro de Visual Basic clásico y usted habla de DataGridView, que es un control de Windows Forms para .Net, así que VB clásico no aplicaría. ¿Estoy en lo correcto al pensar que usted tiene un proyecto de VB.net
Windwos Forms y no uno de VB clásico?
Si es así, puede declarar una propiedad o variable a nivel de formulario de tipo
Boolean cuyo valor inicial sería False. Esta sería la variable de control.
En el evento Click del botón de calcular, al final, cambie el valor de la variable de control a
True.
En el evento Click del botón de clacular, antes de agregar una fila, pregunte por el valor de la variable de control: Si es True, evite el uso de Rows.Add().
Dim filaAUsar As DataGridViewRow
If (Not <variable de control>) Then
'Es la primera vez que se presiona el botón.
filaAUsar = New DataGridViewRow()
dgv1.Rows.Add(filaAUsar)
Else
'La fila ya existe. Ubíquela por índice o algún otro método.
filaAUsar = ...
End
'Aquí la variable filaAUsar es la fila que usted necesita, ya sea
'provista como una nueva fila, o una fila existente.
Jose R. MCP
My GIT Repositories | Mis Repositorios GIT