if (openFile.ShowDialog()==DialogResult.OK)
            {
                picStudent.Image.Dispose();
                File.Copy(openFile.FileName, string.Format(@"data\{0}\{1}.gif", cboClass.Text, txtNumber.Text), true);
                picStudent.Image = Image.FromFile(openFile.FileName);
                picStudent.Image.Tag = openFile.FileName;
            }
为什么我这段代码,加进if语句判断就会出现 data\网编\1.gif正由另一进程使用?(我的picStudnet图像框原先调用了这幅图像)但我原先的代码是这样openFile.ShowDialog();
picStudent.Image.Dispose();
                File.Copy(openFile.FileName, string.Format(@"data\{0}\{1}.gif", cboClass.Text, txtNumber.Text), true);
                picStudent.Image = Image.FromFile(openFile.FileName);
                picStudent.Image.Tag = openFile.FileName;却没出现这个问题

解决方案 »

  1.   

    picStudent.Image.Dispose();//放到if外边
    if (openFile.ShowDialog()==DialogResult.OK)
    {
        File.Copy(openFile.FileName, string.Format(@"data\{0}\{1}.gif", cboClass.Text, txtNumber.Text), true);
        picStudent.Image = Image.FromFile(openFile.FileName);
        picStudent.Image.Tag = openFile.FileName;
    }
      

  2.   

    picStudent.Image.Dispose();这有什么用??