Поле списка Form1 не загружается в массив form3 при повторном открытии - PullRequest
1 голос
/ 16 апреля 2019

Form3 содержит элементы массива, которые загружают его элемент из списка формы form1. Когда form3 закрывается и снова открывается, массив становится пустым, и в массиве нет значений, с которыми я могу сравнивать.

Попытка получить еще один список в форме 3 и получить элементы через него, обновляя его каждый раз при каждом запуске. Но это не работает.

form1

Do while xr.read()
If xr.NodeType = XmlNodeType.Element AndAlso xr.Name = "Rating" Then
dim rating(0) as string = {xr.ReadElementString}
ListBox5.Items.Add(rating(0))

end If

 Private Sub RatingsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles RatingsEnteredVsAppxRatingsToolStripMenuItem.Click
        Dim myform As Form3
        myform = New Form3

        myform.Show(Form3)

        InitializeComponent()
    End Sub


form3

Public class form3

Dim toarray() As String = Form1.ListBox5.Items.OfType(Of String).ToArray()

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'Compare operations to array
end sub

end class

Я ожидаю, что когда form3 снова будет закрыта и открыта из меню-формы form1, то массив все равно должен содержать элементы listbox5.

Ответы [ 2 ]

0 голосов
/ 17 апреля 2019

Удалить InitializeComponent() после отображения Form3.Он воссоздает ваш контроль и удаляет элементы, которые вы добавили к нему при чтении вашего XML.

Private Sub RatingsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles RatingsEnteredVsAppxRatingsToolStripMenuItem.Click
    Dim myform As Form3
    myform = New Form3

    myform.Show(Form3)
End Sub
0 голосов
/ 16 апреля 2019

Вместо прямого доступа к элементу управления «Form1.ListBox5», вы можете предоставить объект / класс, содержащий значения (массив оценок), и передать его в Form1.ListBox5 и Form3 после создания экземпляра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...