我是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;
谢谢。
答案 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中,并在需要时将它们分配到图片框...除非你想要显示每个他们在同一时间;)