0
为什么下面的代码在运行时给出空引用异常?(假定计时器在窗体打开时开始计时)。我将在很多sub中使用数组,并且我不想在每个subs中声明数组,以便它们可以工作,因为它会使程序变得很长。Visual Basic:声明数组的图片框
注意: Pictureboxes Enemy1_1,Enemy1_2,Enemy1_3等已经从表格开始。
Public Class Form1
Dim Array1() As PictureBox = {Enemy1_1, Enemy1_2, Enemy1_3}
Dim Array2() As PictureBox = {Enemy2_1, Enemy2_2, Enemy2_3}
Dim Array3() As PictureBox = {Enemy3_1, Enemy3_2, Enemy3_3}
Private Sub timer1_Tick(sender As Object, e As EventArgs) Handles timer1.Tick
For index As Integer = 0 To 2
Array1(index).Left += 5
Array2(index).Left += 5
Array3(index).Left += 5
Next
End Sub
End Class
您是否创建了9个图片框(_EnemyX_Y_)?不调用_EnemyX_Y = new PictureBox()_ NullReference异常有保证 – Steve
pictureboxex EnemyX_Y已经从表单开始创建。我只使用Array1,Array2和Array3来更容易地访问picturebox。 – shriekyphantom
我只能建议在定时器函数中放置一个断点,并检查ArrayX(index)是否指向一个有效的PictureBox(非null) – Steve