Form3包含从Form1列表框中加载其项目的数组元素。 当关闭form3并再次将其重新打开时,数组将变为空,并且数组中没有可比较的值。
试图在form3中获取另一个列表框,并通过在每次运行中每次刷新它来获取元素。但它不起作用。
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
我希望当再次从form1的菜单栏关闭并打开form3时,toarray仍应包含listbox5的元素。
答案 0 :(得分:0)
代替直接访问控件“ Form1.ListBox5”,您可以提供一个包含值(评级数组)的对象/类,并在实例化后将其传递给Form1.ListBox5和Form3。
答案 1 :(得分:0)
Remove InitializeComponent()
after showing Form3. It is recreating your control & removing the items that you have added to it when reading your 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