打印Winform的pictureBox控件

vickjiang 2008-12-29 08:33:05
我的想法:单击查询按钮,pictureBox上显示相应曲线,单击打印的时候,弹出打印框,确定后打印PictureBox的图片

之前的做法:將PictureBox区域的屏幕拷贝下來,然后送到打印机

缺点是:打印的时候把挡在PictureBox前面的东西一起打印出来了,并且我的打印处理有问题,本来是纵向的图片变成横向的了

希望高手们指点指点,最好是带打印预览的
...全文
155 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgke 2008-12-30
  • 打赏
  • 举报
回复
pictureBox1.DrawToBitmap(Bitmap ,Rectangle)
不能解决吗?
vickjiang 2008-12-30
  • 打赏
  • 举报
回复
谢谢各位提示

打印的时候 我不想重新画一次图 因为要重新读一次数据库,而数据量可能很大

之前的做法:是打印PictureBox所在屏幕区域,那样会把打印预览窗(或者其他任何东西)挡在PictureBox之上的部分一起打印出来

还请各位赐教下 还有没其他的方法能打印出PictureBox的内容的
vickjiang 2008-12-30
  • 打赏
  • 举报
回复
谢谢各位

不过那个打印预览我还是没搞懂 不知道哪种状态才是用户点了打印键

先结账 继续等待赐教
chinaicm 2008-12-30
  • 打赏
  • 举报
回复
打印的时候 我不想重新画一次图 因为要重新读一次数据库,而数据量可能很大

??


你这个数据读出来之后,放到一个本地的数据集里,缓存住啊,打印的时候,在这里读.
chinaicm 2008-12-29
  • 打赏
  • 举报
回复
点Button1,在PictureBox上画个圆.


private void button1_Click(object sender, EventArgs e)
{
this.pictureBox1.Paint += new PaintEventHandler(pictureBox1_Paint);
this.pictureBox1.Refresh();
}

void pictureBox1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.DrawEllipse(new Pen(Brushes.Blue),new Rectangle(new Point(5,5),new Size(40,40)));
}


点Button2打印,并查看打印预览.

private void button2_Click(object sender, EventArgs e)
{
PrintDocument pd = new PrintDocument();
pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
PrintPreviewDialog ppd = new PrintPreviewDialog(); //阅览窗体
ppd.Document = pd;
pd.Print();
}

void pd_PrintPage(object sender, PrintPageEventArgs e)
{
Graphics g = e.Graphics;
g.DrawEllipse(new Pen(Brushes.Blue), new Rectangle(new Point(5, 5), new Size(40, 40)));
}
GTX280 2008-12-29
  • 打赏
  • 举报
回复

帮顶

111,130

社区成员

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

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

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