使用 DialogResult c# 启动进程

Start a process with DialogResult c#

我实际上正在编写一个程序来创建我需要的特定 excel 文件,其中 Microsoft.Office.Interop.Excel。这很好用。

我的程序创建,然后保存并关闭新的 excel 文件(工作正常)。

 sheet.SaveCopyAs(path);
 sheet.Saved = true;
 sheet.Close(true, misValue, misValue);
 excel.Quit();

成功创建新的 Excel 文件后,会打开一个 DialogResult 框并询问我是否要打开新的 Excel 文件

DialogResult dr = MessageBox.Show("Open new file?", "text", MessageBoxButtons.YesNo);
          {
             if (DialogResult == DialogResult.Yes)
             {
                  Process.Start(path);
             }
             else if (DialogResult == DialogResult.No)
             {                          
                   this.Close();
             }

但是当我按“是”时,没有任何反应,新文件没有打开。

我尝试在表单上添加一个额外的按钮

 private void button4_Click(object sender, EventArgs e)
        {
            Process.Start(path);
        }

这种方式可行,但为什么 DialogResult 框无法打开我的新 Excel 文件?

你的对话结果值存储在dr,所以你应该比较dr:

DialogResult dr = MessageBox.Show("Open new file?", "text",  
                                  MessageBoxButtons.YesNo);
if (dr == DialogResult.Yes)
{
    Process.Start(path);
}
else if (dr == DialogResult.No)
{                          
     this.Close();
}