【问题标题】:how to close print dialog when user cancel print preview dialog用户取消打印预览对话框时如何关闭打印对话框
【发布时间】:2015-03-01 09:26:44
【问题描述】:

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

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

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

【问题讨论】:

  • 单击对话框中的打印工具栏按钮以获取打印输出。如果您不喜欢它的工作方式,请使用 PrintPreviewControl 创建自己的对话框。
  • 打印后再次显示打印对话框,因为 pdoc.Print();正在执行

标签: c#-4.0 printing


【解决方案1】:

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

所以工作方式是对还是错

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

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

【讨论】:

  • 您的回答似乎适用于System.Windows.Controls.PrintDialog。根据 Jinesh 对 Document 属性的使用,我相信他们正在使用 System.Windows.Forms.PrintDialog
猜你喜欢
  • 1970-01-01
  • 2015-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-22
相关资源
最近更新 更多