printPreviewControl如何刷新?

cc_net 2009-06-16 09:51:16
现在项目要打印DataGridView。我写了一个打印类,对Document的操作都在这个里(打印,设置,预览),还设置了BeginPrint和PrintPage事件的方法,来画出要打印的DataGridView的数据。DataGridView所在窗体上有打印,设置,预览按钮,都是调用打印类中的方法。这样设置,预览,打印都是有效的。

打印类中预览是用printPreviewDialog来实现预览。在ShowDialog的时候会触发上面2个事件,画出数据显示到预览里面。但是这个控件功能太少,不能在里面设置页面属性等。

所以我自己改用printPreviewControl控件,然后在Form里面加上了页面设置。使用PageSetupDialog。在自己打印类里面改为Show出这个窗体,也可以显示出预览信息。但是在Form中设置了页面,比如把纸边成横向的,但不知道如何刷新printPreviewControl中的显示。因为需要重新调用BeginPrint和PrintPage事件的方法。不知道如何去调用。

或者有没有其他方法来自定自己的printPreviewControl控件?

...全文
610 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
baggio000 2010-07-10
  • 打赏
  • 举报
回复
我也碰到这个问题,不知怎么解决。
wjq 2009-06-17
  • 打赏
  • 举报
回复
用InvalidatePreview方法来刷新预览吧~~不是一show,直接就自动重绘了呀
cc_net 2009-06-17
  • 打赏
  • 举报
回复
现在用printPreviewDialog或printPreviewControl的时候,只能吧Show出来,show了以后会自动触发Document的BeginPrint和PrintPage事件,重新画数据。

但是现在的问题是我放printPreviewControl的窗体已经SHOW出来了,这个时候如何在去触发Document的BeginPrint和PrintPage的事件呢。
直接调用的话参数要如何指定呢?
PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
wjq 2009-06-17
  • 打赏
  • 举报
回复
设置后重新调用打印(预览)方法来重画perview控件
cc_net 2009-06-17
  • 打赏
  • 举报
回复
噢噢。可能SHOW的时候会调用InvalidatePreview。问题解决,3Q
cc_net 2009-06-16
  • 打赏
  • 举报
回复
.........顶顶更健康
cc_net 2009-06-16
  • 打赏
  • 举报
回复
定啊,没人

110,537

社区成员

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

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

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