0
사람은 제가 수행하는 방법에 어떤 생각이없는 C#을 (비주얼 스튜디오 .NET 2005 또는 2008)C#을 사용 flowlayoutpanel의 모든 이미지를 인쇄하는 방법을
를 사용하여 flowlayoutpanel에있는 모든 10 개 개의 이미지를 인쇄하는 데 도움이 수 이? ,
private int imagesToPrintCount;
private void PrintAllImages()
{
imagesToPrintCount = flowLayoutPanel1.Controls.Count;
PrintDocument doc = new PrintDocument();
doc.PrintPage += Document_PrintPage;
PrintDialog dialog = new PrintDialog();
dialog.Document = doc;
if (dialog.ShowDialog() == DialogResult.OK)
doc.Print();
}
private void Document_PrintPage(object sender, PrintPageEventArgs e)
{
e.Graphics.DrawImage(GetNextImage(), e.MarginBounds);
e.HasMorePages = imagesToPrintCount > 0;
}
private Image GetNextImage()
{
PictureBox pictureBox = (PictureBox)flowLayoutPanel1.Controls[flowLayoutPanel1.Controls.Count - imagesToPrintCount];
imagesToPrintCount--;
return pictureBox.Image;
}
당신이 FlowLayoutPanel에서 제어 유형을 확인해야 할 수도 있습니다 유의 사항 :
인쇄 미리보기에 문제가 있습니다. flowlayout 컨트롤에서 모든 이미지의 인쇄 미리보기를 보여 주실 수 있습니까? – james
PrintPreviewDialog 구성 요소를 만들고 PrintDocument를 미리보기 대화 상자의 Document 속성에 할당합니다. 대신 PrintDialog를 사용할 수 있습니다. 그러나 미리보기 대화 상자에서 인쇄하려면 imagesToPrintCount를 재설정해야합니다. 내가 기억할 때, 당신은 문서의 BeginPrint 이벤트를 사용할 수 있습니다. –