打印事件处理顺序

Print时间的顺序:

(1)首先,BeginPrint事件被引发。应用程序的BeginPrint事件处理程序应该执行打印开始时所需的任何特殊处理。

(2)然后,QueryPageSettings事件被引发。此事件的事件处理程序应该修改只涉及那个页面的打印机设置。

(3)接着,PrintPage事件被调用。可以论证得出它是所有这些事件中最重要的一个,执行一个页面的实际打印操作。PrintPage事件类似于我们更加熟悉的Paint事件。区别是:传递给Paint事件处理程序的是PaintEventArgs类型的一个参数,而PrintPage事件处理程序所期望的是一个PrintPageEventArgs类型的参数,这个PrintPageEventArgs对象包含了关于打印页面的附加信息。其实,与PrintPageEventArgs对象相关的Graphics对象将被初始化来指向打印机。除了打印,PrintPage事件处理程序还应该根据是否存在等待打印的页面来设置PrintPageEventArgs。HagMorePages属性为true或false。

(4)然后进入循环操作。如果PrintPageEventArgs。HasMorePages被设置为true(从PrintPage事件处理程序返回时),那么PrintDocument类将返回引发QueryPageSettings事件,然后引发PrintPage事件。循环将一直进行到HasMorePages被设为false,这意味着代码将需要独立第追踪PrintPage已被调用的次数以决定哪个页面正被打印,并使当地自定义您的打印代码。

(5)最后,EndPrint事件被调用以执行打印结束时所需的清理任务。

原文地址:https://www.cnblogs.com/ttssrs/p/2396530.html