问题描述
privatevoidForm1_Load(objectsender,EventArgse){printDocument=newPrintDocument();printDocument.PrintPage+=newPrintPageEventHandler(printDocument_PrintPage);}privatevoidprintDocument_PrintPage(objectsender,PrintPageEventArgse){Graphicsg=e.Graphics;g.DrawString("ss",newFont("Arial",13,System.Drawing.FontStyle.Bold),System.Drawing.Brushes.Black,e.MarginBounds.X,e.MarginBounds.Y);}privatevoidbutton3_Click(objectsender,EventArgse){PrintPreviewDialogpreviewDialog=newPrintPreviewDialog();previewDialog.Document=printDocument;//printDocument.Print();try{previewDialog.ShowDialog();}catch(Exceptionex){MessageBox.Show("dsdf");}以上是打印代码。电脑刚开机点击打印预览,2秒(很快就出来了)。关掉打印预览之后,在点击打印预览。就会很长时间才出来,大概1分钟。之后都是这样。会的指导下,看是不是打印预览出来后要把某些变量重新初始化。
解决方案
解决方案二:
g.DrawString之后执行g.dispose让GC回收资源
解决方案三:
引用1楼Z65443344的回复:
g.DrawString之后执行g.dispose让GC回收资源
修改了之后第1遍和第2遍很快之后就不行了
解决方案四:
printDocument=newPrintDocument();printDocument.PrintPage+=newPrintPageEventHandler(printDocument_PrintPage);这两个,前面直接从工具箱拖一个出来,后面在属性里双击事件生成,不要自己写代码,再试试
解决方案五:
PrintPreviewDialogpreviewDialog=newPrintPreviewDialog();这个也从工具箱里拖出来
解决方案六:
引用4楼Z65443344的回复:
PrintPreviewDialogpreviewDialog=newPrintPreviewDialog();这个也从工具箱里拖出来
现在2个都是从工具箱拖的。没有重启电脑,还是很慢。我重启下在试试看
解决方案七:
换了个电脑,无论是从工具箱拖还是手写,都很快。而且没写g.dispose()