我有打印工具栏项目的自定义控件。当打印控件时,对话框不会出现在Windows 7与64位操作系统中,在其他系统操作系统中工作正常。问题只出现在Windows 7与64位。
我的问题printdialog是不来在windows 7操作系统与64位。
我已经检查并分析了--〉PrintDialog。ShowDialog()返回立即取消而不显示问题所在的对话框。
我已经找到了这个问题的解决方案,通过搜索以下链接:
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
通过将printdialog的UseExDialog属性设置为true,对话框会出现并正常工作。但此对话框样式类似于windows XP而不是windows7style.so,这不是exat解决方案。
UseExDialog属性设置为真意味着工作正常。但打印对话框样式看起来像Windows XP打印不像Windows 7。我需要一些其他的解决方案来显示64位Windows 7操作系统中的打印对话框。
请提供此问题的完整解决方案
谢谢
湿婆
5条答案
按热度按时间px9o7tmv1#
根据Microsoft's Forums:
通过Mike Dos Zhang(微软CSG)
除非将UseEXDialog属性设置为true,否则PrintDialog类可能无法在AMD64(x64或属于AMD64技术的任何CPU,包括intel x64cpu)微处理器上工作。
这是一个已知问题。
net framework4中支持此限制,因此如果您希望将此类与windows7样式对话框一起使用,则需要使用.net framework4,否则需要使用xp样式对话框,并将UseEXDialog属性设置为true,或者使用x86目标平台。
在我的情况下,第二个已知的问题是它...我们从.NET 2. 0升级到.NET 4. 0,它再次开始工作,没有任何代码更改(打印)。
piztneat2#
如果您无法或不想设置
UseEXDialog = true
,则可以将Plattform
设置为x86
缺点是显而易见的,但这样做应该会给您带来优点,即不需要像uzbones那样升级您的.NET Framework,这也可能会产生问题。
pexxcrt23#
我的.net framework v3. 5也遇到了同样的问题,将解决方案升级到了.net framework v4. 5,效果很好。
11dmarpk4#
只需按照以下步骤操作:
1-打开旧解决方案(使用Visual Studio 2005创建)在Visual Studio 2008中,2-接受转换(从2005年到2008年),3-选中备份复选框并选择所需的备份位置,4-成功打开解决方案后,您的解决方案,5-就是这样,已完成。现在运行您的项目,您将看到将显示没有任何问题...
vshtjzan5#
将对话框对象属性
AutoUpgradeEnabled
设置为false纠正了在Windows 7 SP1 64位中执行时的问题(解决方案是使用VS2008和.net 2.0编译的)。前。