显示上PrintPreviewControl的PrintDocument的所有页面
-
18-09-2019 - |
题
我无法在创建的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。
不隶属于 StackOverflow