Se anzichè fare così:
Me.DataGridView3.Rows.Add(New Object() {Me.TextBox1.Text, Me.TextBox2.Text, Me.TextBox3.Text, codstato, codcomune})
Fai così:
Me.DataGridView3.Rows.Add(New Object() {"",Me.TextBox1.Text, Me.TextBox2.Text, Me.TextBox3.Text, codstato, codcomune})
Funziona?
Sennò il metodo sicuro che uso io è questo:
DataGridView.Rows.Insert(posizione,numrighe)
poi vai a compilare i vari campi:
DataGridView.Rows(posizione).cells(indice).value= "valore"