我无法在创建的PrintDocument多个页面和一个PrintPreviewControl内显示它们。我可以创建一个页面很轻松了,但串在一起的多个页面是躲避我。

我要画最终使用GDI的东西几页,但我不能让这样的事情,以达到预期效果。

private PrintDocument doc = new PrintDocument();
private string[] printMe = new string[]{ "page1", "page2", "page3" );
private int pageCount = 0;

private void FormLoad(object sender, EventArgs e)
{
 doc.PrintPage += new PrintPageEventHandler(PrintPage);
 PrintPreviewControl.Document = doc;
}

private void doc_BeginPrint(object sender, PrintEventArgs e){ pageCount = 0; }

private void PrintPage(object sender, PrintPageEventArgs e)
{
 Graphics g = e.Graphics;
 g.DrawString(drawMe[pageCount++], "Lucida Console", Brushes.Black, new Point(20,20));

 e.HasMorePages = (pageCount  printMe.Length );
}

这个想法是,3个单独的页面被创建,并且打印预览控制中显示。我缺少什么?

有帮助吗?

解决方案

您的代码片断得到了临界点,在那里你指定e.HasMorePages正好错位。有没有在你的代码,一个突出的问题:你需要实现一个BeginPrint事件处理程序重置回页计数器为0

其他提示

我不知道如何显示在默认情况下所有的网页,但你可以通过设置PrintPreviewControl财产,在发现表明在Columns多个页面中的布局的的的部分属性窗口,和/或属性Rows,中发现的行为部分,为一个值高于1。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top