C# 打印时-如果选择保存PDF,如果文件名存在,则会使计算机崩溃

C# 打印时-如果选择保存PDF,如果文件名存在,则会使计算机崩溃,c#,winforms,printing,C#,Winforms,Printing,在打印时,如果用户选择保存PDF,如果已经存在同名文件,则会弹出一个对话框:“文件存在。是否替换?”。如果我单击“是”,它将使计算机崩溃,因为对话框未关闭。 我的代码: 我编辑代码-它在方法中。我从另一个类调用该方法。我加上try/catch。 问题是当我在打印机对话框中选择“Adobe PDF”时,我需要用文件名保存。默认名称是文档名,如果我想在问题再次出现时打印同一页。 现在我解决了将dateTime.Now.Tostring()添加到文档名的问题,因此文件名每次都会更改,但基本问题尚未解决

在打印时,如果用户选择保存PDF,如果已经存在同名文件,则会弹出一个对话框:“文件存在。是否替换?”。如果我单击“是”,它将使计算机崩溃,因为对话框未关闭。 我的代码:


我编辑代码-它在方法中。我从另一个类调用该方法。我加上try/catch。 问题是当我在打印机对话框中选择“Adobe PDF”时,我需要用文件名保存。默认名称是文档名,如果我想在问题再次出现时打印同一页。
现在我解决了将dateTime.Now.Tostring()添加到文档名的问题,因此文件名每次都会更改,但基本问题尚未解决。

page.PrintPage+=new PrintPageEventHandler(page\u PrintPage)=此代码在代码的哪个部分声明?-另外,使用try/catch并获取异常详细信息。只添加一次事件处理程序。不清楚选择PDF和调用页面\打印页面之间的关系。需要更多的代码。
  PrintDialog printDialog1 = new PrintDialog();
    PrinterSettings settings = new PrinterSettings();
    static PrintDocument page = new PrintDocument();
public void printPage()
{
        printDialog1.Document = page;
        DialogResult result = printDialog1.ShowDialog();
        page.PrintPage += new PrintPageEventHandler(page_PrintPage);

        if (result == DialogResult.OK)
        {
          try
          {
             settings = printDialog1.PrinterSettings;
             printDialog1.Document.DocumentName = myNameDocument;
             page.Print();
             printDialog1.Dispose();
          }
          catch(Exception ex)
          {
              MessageBox.Show(ex.Message);
          }
        }
    }

private void page_PrintPage(object sender,PrintPageEventArgs e)
{
   Graphics graphic=e.Graphics;
   SolidBrush brush = new SolidBrush(Color.Black);
   e.PageSettings.PaperSize=new PaperSize("A4",850,1100);
   Font font=new Font("Ariel",12,FontStyle.Bold);
   graphic.DrawString("print O.K.", font, brush, 100, 100);
}