本文发表在 rolia.net 枫下论坛别说,想当年做打印这块还真头疼过一段时间。这几个类比如 PrintDocument 和它下属的 PrintController 类都是相互嵌套,觉得很是混乱! 不过用得多了也就习惯了
一般的我会定义一个 PrintDocument 的 object
PrintDocument pd=new PrintDocument();
然后定义 PageSetupDialog, PrintPreviewDialog, PrintDialog三个类的objects
PageSetupDialog psd=new PageSetupDialog();
PrintPreviewDialog ppd=new PrintPreviewDialog();
PrintDialog pdl=new PrintDialog();
然后将这3个类的Document属性全部赋予 最先生成的PrintDocument object 就可以了psd.Document=pd;
ppd.Document=pd;
pdl.Document=pd;
然后你可以分别用ShowDialog()函数将这3个Dialog显示出来,里面所作的一切改动都将反映到 PrintDocument object里,也就是 pd里
然后自己写好 PrintDocument.PrintPage event 就可以了
这三个控件你也可以从toolbox中拖到form上自动生成,方便一些,但看起来乱。我倾向于自己写
当然我说这些前提是你对打印要有个基本的了解,知道这些类的作用。
最关键的还是怎样写 PrintPage event , 里面涉及到横向打还是纵向打,判断页边据,是否分页。尤其在画表格的时候,能把人烦死。大量的用到GDI+的知识
祝好运更多精彩文章及讨论,请光临枫下论坛 rolia.net
一般的我会定义一个 PrintDocument 的 object
PrintDocument pd=new PrintDocument();
然后定义 PageSetupDialog, PrintPreviewDialog, PrintDialog三个类的objects
PageSetupDialog psd=new PageSetupDialog();
PrintPreviewDialog ppd=new PrintPreviewDialog();
PrintDialog pdl=new PrintDialog();
然后将这3个类的Document属性全部赋予 最先生成的PrintDocument object 就可以了psd.Document=pd;
ppd.Document=pd;
pdl.Document=pd;
然后你可以分别用ShowDialog()函数将这3个Dialog显示出来,里面所作的一切改动都将反映到 PrintDocument object里,也就是 pd里
然后自己写好 PrintDocument.PrintPage event 就可以了
这三个控件你也可以从toolbox中拖到form上自动生成,方便一些,但看起来乱。我倾向于自己写
当然我说这些前提是你对打印要有个基本的了解,知道这些类的作用。
最关键的还是怎样写 PrintPage event , 里面涉及到横向打还是纵向打,判断页边据,是否分页。尤其在画表格的时候,能把人烦死。大量的用到GDI+的知识
祝好运更多精彩文章及讨论,请光临枫下论坛 rolia.net