2011-08-10 54 views
1

我目前正在编写一个应用程序,允许用户查看大量图像并使用鼠标(ala Windows Table)重新排列它们。一切都很好,但我试图设置一个系统,我可以选择多个图像并将它们发送到打印机。在C#中打印多个图像

我可以轻松地做到这一点,我遍历所选对象的列表,然后弹出打印机就好了。我遇到的问题是试图将它们合并为一个单一的打印作业,而不是每个页面的单个作业。主要原因是打印预览可用。当我在打印预览中迭代我的列表时,它只显示我的第一张图片,并且没有其他页面出现。我试过e.HasMorePages,但我仍然得到相同的结果。这里是我在我的打印事件中的代码:

private void pd_PrintPage(object sender, PrintPageEventArgs e) 
    { 
     foreach (PictureBox PrintPic in SelectedCollection) 
     { 
      e.Graphics.DrawImage(PrintPic.Image, 0, 0); 
      PageCounter++; 
      e.HasMorePages = (PageCounter != SelectedCollection.Count); 
     } 
    } 
    private void pd_BeginPrint(object sender, PrintEventArgs e) 
    { 
      PageCounter = 0; 
    } 

我还是C#编程新手,所以任何帮助表示赞赏。

回答

0

摆脱循环:

private void pd_PrintPage(object sender, PrintPageEventArgs e) 
{ 
    e.Graphics.DrawImage(SelectedCollection[PageCounter], 0, 0); 
    PageCounter++; 
    e.HasMorePages = (PageCounter != SelectedCollection.Count); 
} 
+0

这奏效了!我知道自己在正确的轨道上,但我不会想到只是将这些图像从收藏中调出来。谢谢! – Lee