printdialog.showdialog(); not showing the print dialog in windows 7 with 64 bit

夙愿已清 提交于 2019-12-01 15:40:09

问题


I have custom control with print toolbar item.when print the control the dialog is not coming in windows 7 with 64 bit os in other system os working fine. problem only in windows 7 with 64 bit.

my problem printdialog is not coming in windows 7 os with 64 bit.

i have checked and anlyaed -->PrintDialog.ShowDialog() returns immeaditely cancel instaed of showing the dialog thats the problem.

i have found the solution for the problem by searched following links:

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

by setting true to UseExDialog property of printdialog the dialog comes and working fine.but this dialog style is like windows XP not windows7 style.so this is not excat solution.

UseExDialog property sets to true means working fine.but the print dialog style looks like windows XP print not like windows 7. i need some other solution for showing print dialog in windows 7 os with 64 bit.

please provide complete solution for this problem

Thanks

Siva


回答1:


Per Microsoft's Forums:

via Mike Dos Zhang (MSFT CSG)

The PrintDialog class may not work on AMD64(x64 or Any CPU is belong to AMD64 technical, including intel x64cpu) microprocessors unless you set the UseEXDialog property to true.

This is a known issue.

And this limitation has been supported in .net framework4, so if you want use this class with windows7 style dialog, then you will need to use .net framework4, otherwise you will need to use the xp style dialog with set the UseEXDialog property to true, or using x86 target platform.

In my case the 2nd known issue was it... we upgraded from .NET 2.0 to .NET 4.0 and it started working again without any code changes (to the printing).




回答2:


If you can't or don't like to set UseEXDialog = true an alternative would be setting your Plattform to x86

The disadvantage is obvious, but doing so should give you the advantage of not needing to upgrade your .NET Framework like uzbones did, which also could create problems.




回答3:


I got the same issue for my .net framework v3.5, upgraded solution to .net framework v4.5 and it worked well.




回答4:


Setting the dialog object property AutoUpgradeEnabled to false corrected the problem when executing in Windows 7 SP1 64-bit (solution was compiled using VS2008 and .net 2.0).

Ex.

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


来源:https://stackoverflow.com/questions/6385844/printdialog-showdialog-not-showing-the-print-dialog-in-windows-7-with-64-bit

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!