我正在开发的内部应用程序在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;
为什么会发生这种情况的任何线索?
答案 0 :(得分:30)
将printDialog.UseEXDialog
设置为true
以解决此错误。
在.Net 3.5中,MSDN mentions this potential problem在记录UseEXDialog
:
当此属性设置为
true
时,ShowHelp
和ShowNetwork
将被忽略,因为这些属性已针对Windows 2000及更高版本的Windows过时。 此外,除非您将PrintDialog
属性设置为UseEXDialog
,否则true
类可能无法在AMD64微处理器上运行。
(我的重点。)