试图实现从一个文件夹里读取.bmp文件,根据bmp文件的数量生成相应数量的picturebox。代码如下:
private void GetPics_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog fbdlg1 = new FolderBrowserDialog();
            fbdlg1.ShowDialog();
            string []files = Directory.GetFiles(fbdlg1.SelectedPath,"*.bmp");
            int length = files.Length;
            
            PictureBox []picboxs = new PictureBox[length];            for (int i = 0; i < length; i++)
            {
                if (files[i] != null)
                    picboxs[i].Image = Image.FromFile(files[i]);//本句出错:“未将对象引用设置到对象的实例”            }
           
            
        }files[] 数组的里面的内容没有问题,不为空。如果单独设置N个picturebox,分别从files[i]里添加,是没有问题的,但定义成picboxs[]对象数组,就出现了上述问题。

解决方案 »

  1.   

    for (int i = 0; i < length; i++) 
                { 
                    if (files[i] != null) 
      picboxs[i]=new PictureBox();
                        picboxs[i].Image = Image.FromFile(files[i]);//本句出错:“未将对象引用设置到对象的实例”             } 
      

  2.   

    根据bmp文件的数量生成相应数量的picturebox...........你还不如把bmp拼接成一幅大的bmp在赋给一个picturebox
      

  3.   

    files看看这个数组里有没有东西先吧
      

  4.   

    有的,如果单独设置N个picturebox,分别从files[i]里添加,是没有问题的。
      

  5.   

    非常感谢,已经可以了!本以为picbox[]已经通过定义的时候new分配过空间了,本菜明白了。