如何在winforms c#中生成打印预览



我正在尝试从c#Winforms中的表单生成打印预览。已经添加了PrintPreviewDialog和PrintDocument以及一些代码:

using System.Drawing.Printing;
private Bitmap myImage;
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
e.Graphics.DrawImage(myImage, 0, 0);
}
private void Button_Click(object sender, EventArgs e)
{
Graphics g = this.CreateGraphics();
myImage = new Bitmap(this.Size.Width, this.Size.Height, g);
Graphics mg = Graphics.FromImage(myImage);
mg.CopyFromScreen(this.Location.X, this.Location.Y, 0, 0, this.Size);
printPreviewDialog1.ShowDialog();
}

在我点击按钮后,我得到打印预览;文档不包含任何页面";。有人知道为什么会发生这种事吗?我是不是错过了什么?

在显示对话框之前,您需要将PrintDocument附加到打印预览对话框。

在您的示例中,在Button_Click():中的此行之前

printPreviewDialog1.ShowDialog();

您需要添加(假设printDocument1是您的PrintDocument的名称(:

printPreviewDialog1.Document = printDocument1;

请参阅PrintPreviewDialog(.NET 4.8(和PrintDocument(.NET 4.8。

最新更新