如何打印winforms用户控件

本文关键字:winforms 用户 控件 打印 何打印 | 更新日期: 2023-09-27 18:18:41

我创建了一个winforms用户控件,在OnPaint事件中做了很多自定义绘画。现在我想打印这个控件。

  • 是否有一种wysiwyg方法来定位这个控件在"文档"上,并打印包含用户控件的文档?

  • 当使用printpage()事件的printdocument,我可以动态创建&定位我的usercontrol在'page'上,并以某种方式调用我的usercontrol的paint方法?

如何打印winforms用户控件

在PrintPage事件中获取控件的图像,并将其绘制到打印机图形中。

private void PrintPageEventHandler(object sender, PrintPageEventArgs ev) {
            Rectangle rect = new Rectangle(0, 0, yourControl.Width, yourControl.Height);
            //aquire image of yourControl
            Bitmap bitmap = new Bitmap(yourControl.Width, yourControl.Height);     
            yourControl.DrawToBitmap(bitmap, rect);
            ev.Graphics.DrawImage(bitmap, new Point(0, 0)); //place image on right position istead of (0, 0)
}