Подумайте о потоке вашего кода.
У вас есть класс CegHozzadas
, который я назову в качестве примера "Форма A". Форма А загружается, создавая новый DataGrid
и вызывая на нем DataGridFill()
.
Когда вы звоните DataGridFill()
, она создает совершенно новый CegHozzadas
, который НЕ является та же форма, что и для формы A. Затем вы пытаетесь установить для источника данных new DataGridCeg
значение ... что-то.
Вы видите проблему здесь? Вы создали две формы, и, по-видимому, хотите изменить только источник данных DataGridCeg
в форме A. Вы не видите изменения источника данных, поскольку вы изменяете источник данных элемента управления в совершенно другой форме. Эта совершенно другая форма даже не отображается на экране, она просто существует в фоновом режиме.
Если все, что вам нужно, это установить источник данных DataGridCeg
в новой форме, а затем просто установить это во время работы конструктора формы, который, как вы уже заявили, работает.
Public Class CegHozzadas
Public Sub New()
DataGridCeg.DataSource = ...
End Sub
End Class
Если вы абсолютно должны go с помощью метода DataGridFill()
класса DataGrid
, то Вы можете передать свою форму в качестве аргумента DataGridFill()
, но я настоятельно рекомендую против этого. Вам не нужно оставлять код для CegHozzadas
для привязки данных здесь.
Public Class CegHozzadas
Private Sub CegHozzadas_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim DataGridFill As New DataGrid
DataGridFill.DataGridFill(Me)
End Sub
End Class
Public Class DataGrid
Public Sub DataGridFill(MyForm As CegHozzadas)
MyForm.DataGridCeg.DataSource = ...
End Sub
End Class