用户取消打印预览对话框时如何关闭打印对话框

时间:2014-10-14 03:52:02

标签: c#-4.0 printing

我需要一些帮助。 我的要求是当用户点击打印按钮时,它应显示打印预览对话框。 如果用户取消或关闭预览对话框,则表单必须返回原始状态。

我面临的问题是打印预览对话框是可见的。但我不知道如何捕获打印预览工具点击事件。

public void print()
    {
        PrintDialog pd = new PrintDialog();
        PrintDocument pdoc = new PrintDocument();
        PrinterSettings ps = new PrinterSettings();
        PaperSize psize = new PaperSize(); 
        pdoc.DefaultPageSettings.Landscape = false;
        pd.Document = pdoc;
        pd.Document.DefaultPageSettings.PaperSize = psize;

        pdoc.PrintPage += new PrintPageEventHandler(pdoc_PrintPage);

         DialogResult result = pd.ShowDialog();
         if (result == DialogResult.OK)
         {

             PrintPreviewDialog ppd = new PrintPreviewDialog();
             ppd.Document = pdoc;
             ppd.ShowDialog();

             pdoc.Print();
         }
    }

如果我将PrintPreviewDialog代码放在pd.ShowDialog()之前,在预览模式下什么都不可见。 这不起作用

            PrintPreviewDialog ppd = new PrintPreviewDialog();
        ppd.Document = pdoc;
        ppd.ShowDialog();
         DialogResult result = pd.ShowDialog();
         if (result == DialogResult.OK)
         {  
             pdoc.Print();
         }

1 个答案:

答案 0 :(得分:0)

带有打印对话框的showdialog()不支持DialogResult。

所以工作方式是真是假

 PrintDialog pri = new PrintDialog();
                         if (pri.ShowDialog() == true)
                        {
                            pri.PrintQueue.AddJob(fileName, fileName,false);
                        }
                        else
                        {
                            return;   
                        }

你也不能使用pri.ShowDialog()作为已经调用该方法的if语句。