img = Image.FromFile(C_jpg);
                this.pictureBox1.Image = Image.FromFile(C_jpg);
                img.Dispose();
                img = null;
写了img.Dispose(); 后

Application.Run(new Frm_PicDetail());出错了
去掉img.Dispose(); 就可以我只是想动态给this.pictureBox1.Image 赋值
为什么不可以啊
帮帮我啊

解决方案 »

  1.   

    Image
    生存期内不能关闭底层文件
    可以考虑先从文件里读出二进制字节写入新的流,image再从新流里读取,此时可以关闭底层文件
      

  2.   

    MemoryStream  ----- 静态的图片文件可以,gif 之类的不行  
      

  3.   

    终于 搞好了
    跟大家分享一下           
                FileInfo Fileinfo = new FileInfo(strSavePath_jpg);            FileStream imgdatastream = System.IO.File.Open(strSavePath_jpg, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite);
                int imgdatalen = int.Parse(Fileinfo.Length.ToString());   //定义每次读取字节的长度   
                byte[] m_ImgData = new byte[imgdatalen];//定义存储图片二进制的数组 
                imgdatastream.Read(m_ImgData, 0, imgdatalen);//获取图片的字节数              //压缩指定路径下的图片并预览   
                MemoryStream MemStream = new System.IO.MemoryStream(m_ImgData);            this.pictureBox1.Image = Image.FromStream(MemStream);
                MemStream.Dispose();
                imgdatastream.Dispose();
    谢谢
    hdt(倦怠)谢谢所有回复我的人 
    感动的流鼻涕....................