C# 图像打印,其他进程正在使用的文件

C# 图像打印,其他进程正在使用的文件,c#,C#,当我点击打印按钮时,程序将图像保存到某个文件名。然后程序获取文件并打印它。但当我第二次这样做时,文件被另一个进程使用,即使打印已经完成。有没有办法在再次按下打印按钮之前关闭文件 private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { string pathImage = Environment.CurrentDirectory + "\\cha

当我点击打印按钮时,程序将图像保存到某个文件名。然后程序获取文件并打印它。但当我第二次这样做时,文件被另一个进程使用,即使打印已经完成。有没有办法在再次按下打印按钮之前关闭文件

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();
    }
}

可能是因为您没有发布图像:

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);
    }
}

请记住,映像是可识别的。

您需要调用newImage。请使用映像newImage。。。。任何时候一个班级没有按照你的想法去做,网站上已经有很多关于这个问题的问答了。尝试使用搜索功能,输入您收到的确切错误消息和相关关键字,如图像或保存。请参阅标记的重复项以获得一个这样的示例。@PeterDuniho虽然我会说在您可能选择的所有重复项中,这一个是最差的。汉斯另一个著名的斯巴达式回答……非常感谢!这帮我解决了我的问题@克里斯托夫,你通过点击答案左上角的绿色复选标记来感谢他人。