日期:2014-05-20  浏览次数:20964 次

求救:关于PrintPreviewDialog的打印浏览文档的
我写了一个组件,继承System.Windows.Forms.PrintPreviewDialog,然后在工具栏加了一个按钮,我想当这个按钮被按下后,将触发PrintPage事件
重新绘图,根据按钮指定的比例尺单位.   现在是如何在toolStripButton1_Click()这个函数里如何再一次触发PrintPage事件来调用pd_PrintPage()方法.

这个是按钮的事件触发
      private   void   toolStripButton1_Click(object   sender,   EventArgs   e)
                {
                        /*
                                    根据设置X   来绘图浏览
                          */
                        //this.Close();
                        //this.ShowDialog();
                        //   我试了这两句,的确触发了PrintPage事件,不过违反了模式对话框的原则了
                }

//这个是我对PrintPage事件的相应函数
    private   void   pd_PrintPage(object   sender,   PrintPageEventArgs   ev)
    {
                      Graphics   g   =   ev.Graphics;
                      //   然后g绘图,绘图用   X   单位
      }

哪个大人,帮我看看,我在线急等.

------解决方案--------------------
让document打印两次不就得了!
------解决方案--------------------
PrintPreviewDialog这个类没有这样的方法,
你可以用PrintPreviewControl这个控件,用这个控件的InvalidatePreview方法就可以:

PrintPreviewControl.InvalidatePreview 方法
刷新文档的预览。
备注
如果文档外观发生了更改,则调用此方法。

------解决方案--------------------
对了,这样也是可以的:
this.printPreviewDialog1.PrintPreviewControl.InvalidatePreview()