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



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

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

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();
         }

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

所以工作方式是正确的还是错误的

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

你也可以不使用pri。将对话框()显示为if语句,该语句也已调用该方法。

最新更新