나는 WinForms
을 사용하고 있습니다. 내 양식에는 디렉토리의 모든 tif 이미지를 인쇄하는 버튼이 있습니다. 인쇄 작업이 취소되거나 인쇄가 완료되면 내 응용 프로그램에 이미지를 릴리스하라고 말하고 싶습니다. 나는 FileInfo가 아마 여기의 문제라고 생각한다. 이 작업을 어떻게 수행 할 수 있습니까?응용 프로그램이 그것을 사용하여 완료되면 파일을 해제하십시오
List<string> DocPathList = new List<string>();
private int page;
private void btn_Print_Click(object sender, EventArgs e)
{
DirectoryInfo SourceDirectory = new DirectoryInfo(@"C:\image\Shared_Directory\Printing_Folder\");
FileInfo[] Files = SourceDirectory.GetFiles("*.tif"); //Getting Tif files
foreach (FileInfo file in Files)
{
DocPathList.Add(SourceDirectory + file.Name);
}
printPreviewDialog1.Document = printDocument1;
printPreviewDialog1.Show();
}
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
e.Graphics.DrawImage(Image.FromFile(DocPathList[page]), e.MarginBounds);
page++;
e.HasMorePages = page < DocPathList.Count;
}
private void printDocument1_BeginPrint(object sender, PrintEventArgs e)
{
page = 0;
}
이 코드 줄을 추가하면 이미지가 해제됩니다. 버튼을 한 번 클릭하면 작동합니다. 내가 인쇄 버튼을 누릅니다 경우, 두 번째 printPreviewDialog1.Show();
오류 발생 : 난 내 인쇄를 취소하고 다음 파일로 이동하는 경우 예를 들어
Exception thrown: 'System.ObjectDisposedException' in System.Windows.Forms.dll
using (var image = Image.FromFile(DocPathList[page]))
{
e.Graphics.DrawImage(image, e.MarginBounds);
page++;
e.HasMorePages = page < DocPathList.Count;
}
를,이 파일을 수정/삭제/이름을 탐험 나는 아래의 오류. 현재 tif 문서를 수정할 수있는 응용 프로그램을 닫아야합니다.
, 그냥 응용 프로그램을 말하고 싶어 내가 돈을 더 이상이 문서를 사용하고 싶지 않습니다. 따라서이 Windows 오류가 아닙니다. 파일이 다른 응용 프로그램에서 열려 있기 때문에 작업을 완료 할 수 없습니다. – taji01