Легко исправить: Вы можете получить доступ контроль на Form1
напрямую от Form2
Так что если у вас есть DataGridView1
на Form1
, в Form2
код, который вы можете получить доступ к нему с помощью Form1.DataGridView1
Примечание: это не хороший дизайн, потому что вы плотно сцепления ваши две формы, вы бы лучше, чтобы передать ссылку к DataGridView в Form2, а не обновляя его непосредственно
в застройщиком Form2 заставить его передать вашу ссылку:
Public Class Form2
Private _dgv As DataGridView
Public Sub New(dgv As DataGridView)
' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
'ensure we have a value object
If dgv Is Nothing Then Throw New ArgumentNullException("DataGridView")
_dgv = dgv
End Sub
Private Sub frmRibbonTest_Resize(sender As Object, e As EventArgs) Handles Me.Resize
Dim rect = RibbonControl1.ClientRectangle
DataGridView1.Location = New Point(rect.X, rect.Y)
DataGridView1.Height = rect.Height
DataGridView1.Width = rect.Width
End Sub
End Class
Тогда при создании Form2 из Form1, используйте ссылку, как это:
Dim f2 = New Form2(Me.DataGridView1)
f2.Show()
Рассмотрите возможность добавления методов в формы, чтобы FormA мог указать FormB заполнить * свои собственные * элементы управления. – Plutonix
Почему бы вам не попробовать 'module'? – hrishikesh