【问题标题】:PrintDialog.ShowDialog(this) immediately returns DialogResult.Cancel on Windows 7PrintDialog.ShowDialog(this) 在 Windows 7 上立即返回 DialogResult.Cancel
【发布时间】:2010-12-17 00:17:28
【问题描述】:

我正在开发的内部应用程序在 Windows 7(64 位)PC 上表现异常。

如果我创建一个 PrintDialog 的实例,并调用它的 ShowDialog() 方法,该方法会立即返回 DialogResult.Cancel 而不显示打印机对话框表单。

Windows 7 PC 确实安装了打印机(带有工作的默认打印机)。

PrintDialog printDialog = new PrintDialog();

printDialog.PrinterSettings.Copies = 2;
printDialog.AllowCurrentPage = false;
printDialog.AllowPrintToFile = false;
printDialog.AllowSelection = false;
printDialog.AllowSomePages = false;
DialogResult dialogResult = printDialog.ShowDialog(this);

if (dialogResult == DialogResult.Cancel)
    return;

任何线索为什么会发生这种情况?

【问题讨论】:

    标签: .net winforms printing windows-7 printdialog


    【解决方案1】:

    printDialog.UseEXDialog 设置为true 以解决此错误。

    在 .Net 3.5 中,MSDN mentions this potential problem 记录 UseEXDialog 时:

    当此属性设置为 true 时,ShowHelpShowNetwork 将被忽略,因为这些属性在 Windows 2000 和更高版本的 Windows 中已过时。 另外,PrintDialog 类可能无法在 AMD64 微处理器上运行,除非您将 UseEXDialog 属性设置为 true

    (我的重点。)

    .Net 4.Net 4.5 的同一页面不包含强调位,因此可能在这些版本中已修复。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 2013-06-25
    • 2011-12-19
    • 2010-10-14
    • 1970-01-01
    • 2014-04-14
    • 1970-01-01
    相关资源
    最近更新 更多