我有打印工具栏项的自定义控件。当打印控件时 在其他系统操作系统中使用64位操作系统的Windows 7中没有对话框 精细。仅在具有64位的Windows 7中出现问题。
我的问题printdialog没有进入带有64位的Windows 7操作系统。
我检查过并且分析了 - > PrintDialog.ShowDialog()无效地返回 取消显示问题对话框的insta。
我通过搜索以下链接找到了问题的解决方案:
http://social.msdn.microsoft.com/Forums/en/netfx64bit/thread/8760fb6c-ae63-444e-9606-cd3295ce6b5d
http://msdn.microsoft.com/en-us/library/system.windows.forms.printdialog.useexdialog.aspx
通过将true设置为printdialog的UseExDialog属性,对话框来了 工作正常。但这个对话框样式就像Windows XP而不是windows7 style.so 这不是解决方案。
UseExDialog属性设置为true表示正常工作。但打印对话框 风格看起来像Windows XP打印不像Windows 7.我需要一些其他 用于在64位的Windows 7 os中显示打印对话框的解决方案。
请为此问题提供完整的解决方案
由于
希瓦
答案 0 :(得分:19)
通过Mike Dos Zhang(MSFT CSG)
除非您将UseEXDialog属性设置为true,否则PrintDialog类可能无法在AMD64(x64或任何CPU属于AMD64技术,包括intel x64cpu)微处理器上运行。
这是一个已知问题。
这个限制已经在.net framework4中得到支持了,所以如果你想在windows7样式对话框中使用这个类,那么你需要使用.net framework4,否则你需要使用xp样式对话框来设置UseEXDialog属性为true,或使用x86目标平台。
在我的情况下,第二个已知的问题是它......我们从.NET 2.0升级到.NET 4.0,它开始工作而没有任何代码更改(打印)。
答案 1 :(得分:4)
如果您不能或不想设置UseEXDialog = true
另一种方法是将Plattform
设置为x86
缺点是显而易见的,但这样做可以为您提供优势,而不需要像uzbones那样升级您的.NET Framework,这也可以制造问题。
答案 2 :(得分:0)
我的.net框架v3.5,将解决方案升级到.net framework v4.5也遇到了同样的问题,而且运行良好。
答案 3 :(得分:-2)
将对话框对象属性AutoUpgradeEnabled
设置为false更正了在Windows 7 SP1 64位中执行时的问题(解决方案是使用VS2008和.net 2.0编译的)。
实施例
SaveFileDialog dlg = new SaveFileDialog();
dlg.AutoUpgradeEnabled = false;