在pictureBox vb c#

时间:2015-05-09 22:55:51

标签: c#

我是visual basic的初学者,我正在研究这个游戏,它应该加载存储在图片框数组中的图像并随机显示它们,但我不断收到运行时错误“NullReferenceException”在这一行:

 if(egypt[randomNumber]==egypt[0])

以前的行是:

PictureBox [] egypt = new PictureBox [5];
Image egypt1 = Image.FromFile(Application.StartupPath + @"\image\egypt1.png");
egypt[0].Image = egypt1;

谢谢。

2 个答案:

答案 0 :(得分:1)

我怀疑错误实际上是在egypt[0].Image = egypt1行,因为Visual Studio中存在一个错误,这意味着异常助手偶尔会在引发异常的行之后突出显示该行。

总之...

egypt[0]null,因为您尚未为其分配实际对象。你只保留了数组的空间但没有放任何东西(数组在创建时充满了空格)

你需要在它之前加上aline,所以它的内容如下:

egypt[0] = new PictureBox(); // This is the new line
egypt[0].Image = egypt1;     // This is the existing line

我怀疑这会解决你的问题。

答案 1 :(得分:0)

您必须创建一个pictuebox的实例并将其分配给数组 - 通过编写

  egypt[0].Image = egypt1;

您正尝试在空数组中的pos 0处访问PictureBox的.Image属性。 egypt [0]的值为NULL。通过在...之前添加以下行来分配该对象的实例。

   egypt[0] = new PictureBox();
顺便说一下:我不知道你的具体情况,但我不会创建一个Pictueboxes数组,更好地将图像加载到数组或Imagelist中,并在需要时将它们分配到图片框...除非你想要显示每个他们在同一时间;)