Вы делаете это слишком сложно. Просто поделитесь источником данных между формами
- Создайте новый проект; временный
- Вставьте этот код поверх всего в файле Form1.vb:
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim dt As New DataTable()
dt.Columns.Add("A")
dt.Rows.Add("One")
dt.Rows.Add("Two")
Dim dgv As New DataGridView
Me.Controls.Add(dgv) 'add dgv to this form
dgv.DataSource = dt
Dim f2 = New Form2(dt)
f2.Show()
End Sub
End Class
Public Class Form2
Inherits Form
Public Sub New(d As DataTable)
Dim dgv2 As New DataGridView
Me.Controls.Add(dgv2) 'add a dgv to this form too
dgv2.DataSource = d
End Sub
End Class
Поиграйте с сетками, добавляя и изменяя данные. вы увидите, как формы (одна за другой) отображают одни и те же данные, и вы увидите, как, когда вы редактируете эти данные в одной, другие обновляются.
Это потому, что они используют одни модель данных. Одно меняет модель, другое видит и обновляет