12

我正在开发的内部应用程序在 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;

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

4

1 回答 1

30

设置printDialog.UseEXDialogtrue解决此错误。

在 .Net 3.5 中, MSDN在记录时提到了这个潜在的问题UseEXDialog

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

(我的重点。)

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

于 2009-11-16T10:33:07.987 回答