-->

是什么HasMorePages的PrintPageEventArgs财产做什么呢?(What doe

2019-06-26 09:05发布

我想了解HasMorePages的PrintPageEventArgs属性是什么,为什么要使用它,它是如何工作的。

MSDN库并没有真正有一个很好的解释。 所有他们说的是,如果你把它设置为true,PrintPage事件再次调用。 那是意味着对自身的事件循环没有留下或离开,并再次调用本身还是依赖于你再次打电话给PrintPage事件?

我只是想了解PrintPageEventArgs.hasmorepages财产。 任何提示或帮助将不胜感激。

谢谢,

Answer 1:

HasMorePages是一个布尔属性PrintPageEventArgs您作为事件的参数。 将它设置为True打印当前页之后,如果有要打印的页数,或False ,如果当前页面是最后一个。

事件总是要求你通过在框架的东西,并且从不应该是由你直接调用。 他们的活动 ,这意味着他们派出告诉你出事了,给你一个机会反应或反应。

如果您将其设置为True ,则PrintPage事件再次自动调用; 你不要自己调用它。 (这正是MSDN文档这样说:如果你把它设置为true,PrintPage事件再次被调用这并不是说你需要再次调用它 -它说再次调用 。)

ev.HasMorePages := DoYouHaveMorePagesToPrint;

对于事件的VB.NET例子,如何使用ev.HasMorePages ,看到了PrintDocument的MSDN文档 。 有关信息PrintPageEventArgs ,看到这个MSDN页面 ,其中有一个链接到PrintPageEventArgs成员 (包括HasMorePages )。



Answer 2:

这不是一个的PrintDocument的属性,它是PrintPageEventArgs的属性。 其中的一个实例被传递给你的PrintPage事件处理程序。

在PrintController和PrintDocument的类工作严重影响的方式印刷的方法是在Windows系统上实现。 核心实现细节是,它是基于页面的 。 并以每次一个页面打印机驱动程序交易,潜在的WINAPI功能的起始页()。 呈现到打印设备方面的任何一个页面上结束。 随后,尾页()函数WINAPI完成的页面,并将其提交到后台打印程序。

这可能有助于图打印3页的文档,而发出的呼吁:

StartDoc()
    PrintDocument.BeginPrint event
    StartPage()
       PrintDocument.PrintPage event, e.HasMorePages = true
    EndPage()
    StartPage()
       PrintDocument.PrintPage event, e.HasMorePages = true
    EndPage()
    StartPage()
       PrintDocument.PrintPage event, e.HasMorePages = false
    EndPage()
    PrintDocument.EndPrint event
EndDoc()

它应该是明确的,现在,通过分配e.HasMorePage = true,则让PrintController持续触发PrintPage事件。 它是由你来分页文档,并呈现正确的页面在你的PrintPage事件处理程序的内容。 你需要的BeginPrint事件,比方说,你的内部页面计数器设置为0。



文章来源: What does Hasmorepages PrintPageEventArgs property do exactly?