0

我有一个图片框数组,像这样(它们都显示了一个图像,来自设计师,来自 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
...

但仍然没有取得任何成果。

我希望这不是重复的,但我整天都在试图弄清楚它似乎无法让它工作:(

非常感谢,并且一如既往地希望这是有道理的。

4

2 回答 2

2

您在InitializeComponent()运行之前填充了这些数组,因此所有变量仍然是Nothing.

您需要在Sub New(), 之后分配数组InitializeComponent()(这会创建实际的PictureBoxes)

于 2013-11-13T14:25:49.433 回答
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
于 2013-11-13T15:51:26.933 回答