Csharp/C#教程:printdialog.showdialog(); 没有在64位的Windows 7中显示打印对话框分享


printdialog.showdialog(); 没有在64位的Windows 7中显示打印对话框

我有自定义控件与打印工具栏项。当打印控件对话框没有进入Windows 7与64位操作系统在其他系统操作系统工作正常。 仅在具有64位的Windows 7中出现问题。

我的问题printdialog没有进入64位的Windows 7操作系统。

我已检查并分析 – > PrintDialog.ShowDialog()返回immeaditely取消instaed显示该问题的对话框。

我通过搜索以下链接找到了问题的解决方案:

https://social.msdn.microsoft.com/Forums/en/netfx64bit/thread/8760fb6c-ae63-444e-9606-cd3295ce6b5d

https://msdn.microsoft.com/en-us/library/system.windows.forms.printdialog.useexdialog.aspx

通过将true设置为printdialog的UseExDialog属性,对话框出现并正常工作。但是这个对话框样式就像是Windows XP而不是windows7样式。所以这不是解决方案。

UseExDialog属性设置为true意味着工作正常。但打印对话框样式看起来像Windows XP打印不像Windows 7.我需要一些其他解决方案在Windows 7 os 64位显示打印对话框。

请为此问题提供完整的解决方案

谢谢

湿婆

每个微软的论坛 :

通过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,它开始工作而没有任何代码更改(打印)。

如果您不能或不喜欢设置UseEXDialog = true可以选择将Plattform设置为x86

缺点是显而易见的,但这样做应该会给你带来不需要像uzbones那样升级.NET Framework的优势 ,这也可能会产生问题。

我的.net框架v3.5,将解决方案升级到.net framework v4.5也遇到了同样的问题,而且效果很好。

将对话框对象属性AutoUpgradeEnabled设置为false更正了在Windows 7 SP1 64位中执行时的问题(解决方案是使用VS2008和.net 2.0编译的)。

防爆。

上述就是C#学习教程:printdialog.showdialog(); 没有在64位的Windows 7中显示打印对话框分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 SaveFileDialog dlg = new SaveFileDialog(); dlg.AutoUpgradeEnabled = false; 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1005893.html

(0)
上一篇 2021年12月28日
下一篇 2021年12月28日

精彩推荐