C#Winform打印预览无法访问已释放的对象。

背离终点 2009-12-16 11:56:20
我想打印预览一张图片
第一次单击能打开,关上预览后再单击预览就报错
无法访问已释放的对象。对象名:“PrintPreviewDialog”。
源码为:
namespace WindowsFormsApplication10
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
printPreviewDialog1.Show();
}

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawImage(Image.FromFile("c:\\1233.jpg"), 100, 100);
}
}
}
希望有高手能帮帮我,先谢谢了
...全文
79 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
silentwins 2009-12-17
  • 打赏
  • 举报
回复
看看关闭的时候有没有释放这个对象的代码
足球中国 2009-12-17
  • 打赏
  • 举报
回复
printPreviewDialog1 = new PrintPreviewDialog();


重新new一下吧。。



___________________________________
我写的vs2005源代码管理器,只有团队资源管理中源码管理的功能。
http://topic.csdn.net/u/20091203/10/ca40b678-5443-4a18-a9f6-fad9051d0797.html
qqiuzaihui 2009-12-17
  • 打赏
  • 举报
回复
这样做, 先把printPreviewDialog声明为静态的,
private static PrintPreviewDialog printPreviewDialog;

然后, 再调用时:
public void PrintPreview()
{
if (printPreviewDialog == null)
{
printPreviewDialog = new PrintPreviewDialog();
}
else
{
printPreviewDialog.Close();
printPreviewDialog = new PrintPreviewDialog();
}

//...
printPreviewDialog.ShowDialog();
}
这是我的方法, 仅供参考.
背离终点 2009-12-17
  • 打赏
  • 举报
回复
谢谢大家的帮忙,问题解决了.
huminghua 2009-12-17
  • 打赏
  • 举报
回复
up
liangshiyin 2009-12-17
  • 打赏
  • 举报
回复
试一下

private void button1_Click(object sender, EventArgs e)
{
PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog();
printPreviewDialog1.Show();
}

110,500

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧