我目前正在编写一个应用程序,允许用户查看大量图像并使用鼠标重新排列它们(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#编码的新手,所以感谢任何帮助。
答案 0 :(得分:0)
摆脱循环:
private void pd_PrintPage(object sender, PrintPageEventArgs e)
{
e.Graphics.DrawImage(SelectedCollection[PageCounter], 0, 0);
PageCounter++;
e.HasMorePages = (PageCounter != SelectedCollection.Count);
}