在 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)