2014-02-17 46 views
0

我打印一个基本上是注册表格的面板,并包含3个小面板,但它只打印一个空白页面......我尝试了很多次,但没有得到解决方案。在c中打印一个面板#

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(); 
+1

您似乎依赖PrintDocument的心灵感应能力。它如何知道你的memoryImage变量?为其PrintPage事件编写一个事件处理程序。 PrintDocument的MSDN库文章不会忽略该文章。 –

回答

0

变化panel_stdadmcard.ClientRectanglenew Rectangle(0, 0, panel_stdadmcard.Width, panel_stdadmcard.Height)

1

你画的面板为位图,但你永远不使用它,如果这个代码是完整的。 您应该实现printDocument的PrintPage-Event。 在那里你应该使用DrawImage来绘制图像。