Bry*_*yan 12 .net printing printdialog windows-7 winforms
我正在开发的内部应用程序在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;
Run Code Online (Sandbox Code Playgroud)
任何线索为什么会发生这种情况?
Ste*_*tze 30
设置printDialog.UseEXDialog为true解决此错误.
在.Net 3.5中,MSDN在记录时提到了这个潜在的问题UseEXDialog:
当此属性设置为
true,ShowHelp并且ShowNetwork将被忽略,因为这些属性已针对Windows 2000和更高版本的Windows过时.此外,PrintDialog除非将UseEXDialog属性设置为,否则该类可能无法在AMD64微处理器上运行true.
(我的重点.)
.Net 4和.Net 4.5的相同页面不包括强调位,因此可能在这些版本中已修复.