即使取消对话框,为什么Word 2010会打印?

时间:2011-06-21 09:28:14

标签: c# printing office-interop office-2010

我正在使用Visual Studio 2010 Office工具来“远程控制”Word 2010.这很好用,我也可以打印我创建的文档。但是,当我显示Word的打印对话框时,即使按下取消按钮,也会打印文档。为什么会这样,我如何正确地对按下的取消按钮作出反应?

我的代码如下:

public void Print(string printerName, bool showPrintDialog)
{
    if (m_wordApp == null || m_wordDoc == null)
        throw new InvalidOperationException("...");

    object missing = System.Type.Missing;
    object varTrue = true;

    if (printerName != null)
        m_wordApp.ActivePrinter = printerName;

    if (showPrintDialog)
    {
        Word.Dialog varDlg = m_wordApp.Application.Dialogs[Word.WdWordDialog.wdDialogFilePrint];
        varDlg.Show(ref missing);
    }
    else
    {
        m_wordDoc.PrintOut(ref varTrue, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
                ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
                ref missing, ref missing, ref missing);
    }
}

1 个答案:

答案 0 :(得分:0)

抱歉,我使用的是旧版本的代码来调试应用程序,行

m_wordDoc.PrintOut(ref ...);

未包含在else块中。一旦我调试了正确版本的代码,打印对话框就会按预期运行。

抱歉打断......