Not sure if this will help but this is the way that I pass textbox inputs to Listview between two forms.
For this example assume that there are two forms (Form 1 and Form 2) Form 1 has a textbox and a command button. Form 2 has a ListView and a Command Button.
For each object that I create on Form 1 that is going to pass data to Form 2 I change the modifier in the properties list from "friend to public" So for this example, you have a text box on Form1 that will pass data to a list view on Form 2. So we change the modifier on the text box on Form 1 from "Friend" to "Public" We also change object you are writing to (Listview on Form 2) from "Friend" to "Public" as well. You do not need to do this for the command buttons that initiate the data move. The modifiers are found in the object properties window about half way down Max length and Minimum Size.
Next, I add a new module to my project. (project=> add new item => module)
Generic code for the module to make both forms public would look something like this:
CODE
Module Module1
Public FForm1 As New Form1()
Public FForm2 As New Form2()
Sub Main()
FForm1.ShowDialog()
End Sub
End Module
The code on the two forms would look something like this:
Form 1:
CODE
Public Class Form1
Inherits System.Windows.Forms.Form
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim lvi As New ListViewItem(TextBox1.Text)
FForm2.Show()
FForm2.ListView1.Items.Add(lvi)
End Sub
End Class
**Note that we are using the Public Class on both forms.
Code for Form 2
CODE
Public Class Form2
Inherits System.Windows.Forms.Form
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
FForm1.TextBox1.Text = TextBox1.Text
FForm2.Hide()
End Sub
End Class
In your example you should be able to replace the Listview from the example above with your data grid. Hope this helps.