C#.NET 覆盖提示不起作用

本文关键字:不起作用 提示 覆盖 NET | 更新日期: 2023-09-27 18:36:30

我有一个需要另存为 pdf 的用户数据报告,但是当我将覆盖提示设置为 true 时,当存在文件名时覆盖消息未显示。这是我的代码。

SaveFileDialog svg = new SaveFileDialog();
svg.FileName = "Data Report - All Books";//set default file name
svg.Filter = "Pdf Files|*.pdf";
if (svg.ShowDialog() == DialogResult.OK)
{
    svg.OverwritePrompt = true;//tell user to overwrite existing file name
    using (FileStream stream = new FileStream(svg.FileName + ".pdf", FileMode.Create))
    {
        Document pdfDoc = new Document(PageSize.A1, 10f, 10f, 10f, 0f);
        PdfWriter.GetInstance(pdfDoc, stream);
        pdfDoc.Open();
        pdfDoc.Add(pdfTable);
        pdfDoc.Close();
        stream.Close();
    }
    MetroMessageBox.Show(this, "Successfully save PDF report.", "SUCESS!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

C#.NET 覆盖提示不起作用

在显示对话框之前,您必须设置覆盖提示。MSDN 确实提到 OverWritePrompt 默认设置为 true。

SaveFileDialog svg = new SaveFileDialog();
svg.FileName = "Data Report - All Books";//set default file name
svg.Filter = "Pdf Files|*.pdf";
//This needs to be before dialog is shown.
svg.OverwritePrompt = true;//tell user to overwrite
if (svg.ShowDialog() == DialogResult.OK)
{
    using (FileStream stream = new FileStream(svg.FileName + ".pdf", FileMode.Create))
    {
        Document pdfDoc = new Document(PageSize.A1, 10f, 10f, 10f, 0f);
        PdfWriter.GetInstance(pdfDoc, stream);
        pdfDoc.Open();
        pdfDoc.Add(pdfTable);
        pdfDoc.Close();
        stream.Close();
    }
    MetroMessageBox.Show(this, "Successfully save PDF report.", "SUCESS!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}