检查picturebox是否为空;对象引用未设置为对象的实例";例外

本文关键字:实例 例外 对象 quot 是否 picturebox 对象引用 检查 设置 | 更新日期: 2023-09-27 18:26:53

如果图像为空,我在将其设置为PictureBox时遇到问题。。。我尝试了几种不同的方法,但总是遇到同样的例外。通过阅读这里和网上的文章,这应该有效,但它不。。。

我已经声明了6个PB阵列。。。

    PictureBox[] red1 = new PictureBox[4];
    PictureBox[] red2 = new PictureBox[4];
    PictureBox[] red3 = new PictureBox[4];
    PictureBox[] red4 = new PictureBox[4];
    PictureBox[] red5 = new PictureBox[4];
    PictureBox[] red6 = new PictureBox[4];

在FormLoad事件中,这些数组填充了适当的PB。。。

     PictureBox[] red1 = { pok11, pok12, pok13, pok14 };
     PictureBox[] red2 = { pok21, pok22, pok23, pok24 };
     PictureBox[] red3 = { pok31, pok32, pok33, pok34 };
     PictureBox[] red4 = { pok41, pok42, pok43, pok44 };
     PictureBox[] red5 = { pok51, pok52, pok53, pok54 };
     PictureBox[] red6 = { pok61, pok62, pok63, pok64 };

当我调用方法来使用它们时,会抛出异常。。。

呼叫:

     DodajSLIKU(Properties.Resources.HERCv2, red1);

方法:

    public void DodajSLIKU(Image slika, PictureBox[] t)
    {            
        if (t[0].Image == null)   //where exception occures.
            t[0].Image = slika;
        else if (t[1].Image == null)
            t[1].Image = slika;
        else if (t[2].Image == null)
            t[2].Image = slika;
        else if (t[3].Image == null)
            t[3].Image = slika;
        else
            return;
    }

我哪里做错了?谢谢

检查picturebox是否为空;对象引用未设置为对象的实例";例外

如下更改方法签名:

public void DodajSLIKU(Image slika, PictureBox[] t)
        {
            foreach (var item in t)
            {
                if (item != null)
                {
                    if (item.Image == null)  
                        item.Image = slika;
                }
            }            
        }