我有一系列的图片框,就像这样(他们都有一个图像显示在他们身上,来自设计师,来自my.resources):
Dim imgSourcePic() As PictureBox = {imgAcronym, imgAcrostic, imgAdjective, imgAdverb, imgAlliteration, imgApostrophe, imgClause, imgComma, imgDialogue}
和另一组图片框(尚未显示图像):
Dim imgDefinitiontoMatch() As PictureBox = {imgDefinition1, imgDefinition2, imgDefinition3, imgDefinition4, imgDefinition5}
在子NewGame()中,我有一行代码:
imgDefinitiontoMatch(intX).Image = imgSourcePic(intRandomNumber).Image
但是,每当执行这行代码时,我都会收到此错误:
我对它进行了调试,发现数组中的图片框显示的是Image属性为'Nothing'。
我怎样才能将图像分配到imgSourcePic()中的图片框中?
我尝试为所有图片创建变量,例如:
Dim picAcronym As Image = My.Resources.Acronymn_definition
...
但仍然没有取得任何成就。
我希望这不是重复,但我一直试图弄明白,似乎无法做到 它的工作原理:(
非常感谢,并且一如既往地希望这是有道理的。
答案 0 :(得分:2)
您在InitializeComponent()
运行之前填充这些数组,因此所有变量仍为Nothing
。
您需要在Sub New()
之后InitializeComponent()
分配数组(创建实际的PictureBox
)
答案 1 :(得分:1)
你也可以使用表格的Load()事件,我在你的代码中已经看到了这个事件:
Public Class Form1
Private PBs() As PictureBox
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
PBs = {PictureBox1, PictureBox2, PictureBox3}
' ... more code ...
End Sub
End Class