Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用c语言打印面板#_C#_Printing_Panel - Fatal编程技术网

C# 用c语言打印面板#

C# 用c语言打印面板#,c#,printing,panel,C#,Printing,Panel,我正在打印一个面板,它基本上是一个登记表,包含3个小面板,但它只打印一个空白页。。。我试了很多次,但没有找到解决办法 PrintDialog myPrintDialog = new PrintDialog(); System.Drawing.Bitmap memoryImage = new System.Drawing.Bitmap(panel_stdadmcard.Width, panel_stdadmcard.Height); panel_stdadmcard.DrawToBitmap(me

我正在打印一个面板,它基本上是一个登记表,包含3个小面板,但它只打印一个空白页。。。我试了很多次,但没有找到解决办法

PrintDialog myPrintDialog = new PrintDialog();
System.Drawing.Bitmap memoryImage = new System.Drawing.Bitmap(panel_stdadmcard.Width, panel_stdadmcard.Height);
panel_stdadmcard.DrawToBitmap(memoryImage, panel_stdadmcard.ClientRectangle);
PrintDocument printDocument1 = new PrintDocument();
if (myPrintDialog.ShowDialog() == DialogResult.OK)
{
    System.Drawing.Printing.PrinterSettings values;
    values = myPrintDialog.PrinterSettings;
    myPrintDialog.Document = printDocument1;
    printDocument1.PrintController = new StandardPrintController();
    printDocument1.Print();
}
printDocument1.Dispose();

panel\u stdadmcard.ClientRectangle
更改为
新矩形(0,0,panel\u stdadmcard.Width,panel\u stdadmcard.Height)
将面板绘制为位图,但如果此代码完成,则永远不会使用它。 您应该实现printDocument的PrintPage事件。
在那里,您应该使用DrawImage来绘制图像。

您似乎依赖PrintDocument的心灵感应能力。它是如何知道memoryImage变量的?为其PrintPage事件编写事件处理程序。PrintDocument的MSDN库文章没有忽略这一点。