C# 用C语言打印多幅图像#

C# 用C语言打印多幅图像#,c#,printing,C#,Printing,我目前正在编写一个应用程序,允许用户查看一大组图像,并用鼠标重新排列它们(ala Windows Table)。一切都很好,但我正在尝试设置一个系统,我可以选择多个图像,并将它们发送到打印机 我可以通过迭代选定对象的列表轻松地完成此操作,然后很好地从打印机中弹出。我遇到的问题是试图将它们合并到一个单独的打印作业中,而不是每个页面的单个作业。主要原因是打印预览可用。当我在打印预览中迭代列表时,它只显示我的第一个图像,而不显示其他页面。我试过e.HasMorePages,但结果还是一样。以下是我在打

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

我可以通过迭代选定对象的列表轻松地完成此操作,然后很好地从打印机中弹出。我遇到的问题是试图将它们合并到一个单独的打印作业中,而不是每个页面的单个作业。主要原因是打印预览可用。当我在打印预览中迭代列表时,它只显示我的第一个图像,而不显示其他页面。我试过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#编码还是新手,因此非常感谢您的帮助。

摆脱循环:

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

成功了!我知道我走上了正轨,但我不会想到直接把这些照片从收藏中拿出来。谢谢