C# 如何在WinC窗体中生成打印预览#

C# 如何在WinC窗体中生成打印预览#,c#,winforms,print-preview,C#,Winforms,Print Preview,我正在尝试从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); } p

我正在尝试从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();
}
单击按钮后,我将获得打印预览,并且此“文档不包含任何页面”。
有人知道为什么会这样吗?我遗漏了什么吗?

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

在您的示例中,在
按钮中的这一行之前单击()

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

请参阅文档中给出的示例,了解为获得所需预览可能需要进行的其他调整

printPreviewDialog1.ShowDialog();
printPreviewDialog1.Document = printDocument1;