【问题标题】:declaring an array of PictureBoxes声明一个图片框数组
【发布时间】:2021-03-02 16:23:51
【问题描述】:

我正在尝试声明一个 PictureBoxes 数组(Boxes)并存储我以 1 形式创建的图片框(Box1,Box2,....);在数组中。我放了代码。

Dim Boxes() As PictureBox

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Boxes(0) = Box1
    Boxes(1) = Box2
    Boxes(2) = Box3
    Boxes(3) = Box4
    Boxes(4) = Box5
    Boxes(5) = Box6
    Boxes(6) = Box7
    Boxes(7) = Box8
    Boxes(8) = Box9
End Sub

但是显示空引用错误的错误。如何解决错误。请帮我。注意{box1, box2, box3}都是PictureBox,我在表单中创建了所有的九个picturebox(box1, box2, box3……)。

【问题讨论】:

  • 把这个Dim Boxes() As PictureBox改成Dim Boxes(9) As PictureBox
  • 更改List(Of PictureBox) 中的数组,然后向其中添加元素:Private Boxes As New List(Of PictureBox),然后是Boxes.AddRange({Box1, Box2, ...})

标签: vb.net nullreferenceexception picturebox


【解决方案1】:

你有一个错误,因为你声明了数组而不是数组的长度。

改变这个:

Dim Boxes() As PictureBox

收件人:

  Private Boxes(9) As PictureBox

也许您可以使用列表而不是数组:

Private Boxes As List(Of PictureBox) = New List(Of PictureBox)

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Boxes.Add(Box1)
    Boxes.Add(Box2)
    Boxes.Add(Box3)
    Boxes.Add(Box4)
    Boxes.Add(Box5)
    Boxes.Add(Box6)
    Boxes.Add(Box7)
    Boxes.Add(Box8)
    Boxes.Add(Box9)
End Sub

有了列表,你就不必关心长度了。

【讨论】:

  • 这仍然会导致 NRE,因为 Boxes 从未实例化
猜你喜欢
  • 1970-01-01
  • 2015-08-03
  • 1970-01-01
  • 2012-10-19
  • 2012-10-04
  • 2014-02-02
相关资源
最近更新 更多