Итак, мне нужно сделать программу для клиента, и он хочет, чтобы в ней находилась панель поиска. Поэтому я сделал это, и все сработало отлично, но я поместил его в свою основную форму. Теперь я хочу, чтобы поместить его в классе, но когда я инициализировать программу, она дает мне следующую ошибкуИнициализировать неправильно с классами vb.net
An error occurred while creating the form. For more information,
see Exception.InnerException. The error is: The form is self-reference during
construction from a default instance, which led to infinite recursion. In the
constructor of the form, refer to the form using 'Me'.
Я пытался поставить Me.Rbtn_X ... но он не признает.
Инициализация
' Main form
Public Sub New()
InitializeComponent()
Initialize_search()
End Sub
Initialize_search()
' Main form
' search is initialize like this :
' Dim search as New Research
Private Sub Initialize_search()
search.generate_autocomplete()
End Sub
generate_autocomplete()
' Research class
Sub generate_autocomplete()
' Main_form = Main form
Dim field = ""
' This is the place where the program fail
If Main_form.RbtnR_avancee_contact.Checked Then
field = "personneressource"
Else
field = "beneficiaire"
End if
' ....
End Sub
Есть ли что-то, чего я не понял, или это невозможно сделать так?
Edit: добавлена Form_shown событие
Public Sub New()
InitializeComponent()
' Initialize_search()
End Sub
Private Sub Form_personne_Shown(sender As Object, e As EventArgs) Handles Me.Shown
MessageBox.Show("You are in the Form.Shown event.")
End Sub
К сожалению, забудьте удалить его .. Это не создает никаких проблем, потому что это не связана с Исследовательский класс –
НЕТ! Оставьте 'InitializeComponent()' в Sub New и вытащите ВСЕ код и поместите его в FormShown. Вы не можете «инициализировать» другие вещи до того, как форма создаст эти вещи. – Plutonix