在 vb.net 创建一个大小未知的控件数组
creating an array of controls with unknown size at vb.net
所以
我需要创建一个标签数组,但我不知道该数组的最终大小。
我在 class 部分声明它
Dim myPoints() As Label
在程序中我填充数组
Dim l As New Label
l.Width = 4
l.Height = l.Width
l.BackColor = Color.Red
l.Visible = True
l.Left = pointA.X - 2
l.Top = pointA.Y - 2
l.Name = CStr(i)
myPoints(i) = New Label
myPoints(i) = l
AddHandler l.Click, AddressOf l_Click
Panel1.Controls.Add(myPoints(i))
当我 运行 程序出现对象引用未设置错误
有没有办法在不声明数组大小的情况下做到这一点?
数组是固定长度的集合。如果你需要一个可以增长 and/or 收缩的集合,那么使用 List(Of T) (documentation)
Dim myPoints = New List(Of Label)()
Dim l = New Label() With {
.Width 4,
.Height = .Width,
.BackColor = Color.Red,
.Visible = True,
.Left = pointA.X - 2,
.Top = pointA.Y - 2,
.Name = i.ToString()
}
myPoints.Add(l)
所以 我需要创建一个标签数组,但我不知道该数组的最终大小。 我在 class 部分声明它
Dim myPoints() As Label
在程序中我填充数组
Dim l As New Label
l.Width = 4
l.Height = l.Width
l.BackColor = Color.Red
l.Visible = True
l.Left = pointA.X - 2
l.Top = pointA.Y - 2
l.Name = CStr(i)
myPoints(i) = New Label
myPoints(i) = l
AddHandler l.Click, AddressOf l_Click
Panel1.Controls.Add(myPoints(i))
当我 运行 程序出现对象引用未设置错误 有没有办法在不声明数组大小的情况下做到这一点?
数组是固定长度的集合。如果你需要一个可以增长 and/or 收缩的集合,那么使用 List(Of T) (documentation)
Dim myPoints = New List(Of Label)()
Dim l = New Label() With {
.Width 4,
.Height = .Width,
.BackColor = Color.Red,
.Visible = True,
.Left = pointA.X - 2,
.Top = pointA.Y - 2,
.Name = i.ToString()
}
myPoints.Add(l)