当我单击打印按钮时,该程序将图像保存为某个文件名。然后,程序将获取文件并进行打印。但是,当我第二次执行此操作时,即使已完成打印,该文件也正在被另一个进程使用。在再次按下打印按钮之前,有什么办法可以关闭文件?
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
string pathImage = Environment.CurrentDirectory + "\\chart1.png";
chart1.SaveImage(pathImage, System.Windows.Forms.DataVisualization.Charting.ChartImageFormat.Png);
Image newImage = Image.FromFile(pathImage);
Point ulCorner = new Point(50, 425);
e.Graphics.DrawImage(newImage, ulCorner);
}
private void button4_Click(object sender, EventArgs e)
{
if (printPreviewDialog1.ShowDialog() == DialogResult.OK)
{
printDocument1.Print();
}
}
答案 0 :(得分:1)
可能是因为您没有释放图像:
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
string pathImage = Environment.CurrentDirectory + "\\chart1.png";
chart1.SaveImage(pathImage, System.Windows.Forms.DataVisualization.Charting.ChartImageFormat.Png);
using (var newImage = Image.FromFile(pathImage))
{
Point ulCorner = new Point(50, 425);
e.Graphics.DrawImage(newImage, ulCorner);
}
}
请记住,Image
是IDisposable
。