Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# printdialog.showdialog();在64位windows 7中不显示打印对话框_C#_Winforms_32bit 64bit_Printdialog - Fatal编程技术网

C# printdialog.showdialog();在64位windows 7中不显示打印对话框

C# printdialog.showdialog();在64位windows 7中不显示打印对话框,c#,winforms,32bit-64bit,printdialog,C#,Winforms,32bit 64bit,Printdialog,我有带有打印工具栏项的自定义控件。打印控件时 对话框在windows 7中不可用,其他系统操作系统中的64位操作系统正在工作 好的问题仅在64位windows 7中出现 我的问题打印对话框不适用于64位windows 7操作系统 我已检查并分析-->PrintDialog.ShowDialog()立即返回 取消显示对话框的安装,这就是问题所在 我通过搜索以下链接找到了问题的解决方案: 通过将true设置为printdialog的UseExDialog属性,对话框将出现并显示 工作正常。但此对

我有带有打印工具栏项的自定义控件。打印控件时 对话框在windows 7中不可用,其他系统操作系统中的64位操作系统正在工作 好的问题仅在64位windows 7中出现

我的问题打印对话框不适用于64位windows 7操作系统

我已检查并分析-->PrintDialog.ShowDialog()立即返回 取消显示对话框的安装,这就是问题所在

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

通过将true设置为printdialog的UseExDialog属性,对话框将出现并显示 工作正常。但此对话框样式类似于windows XP,而不是windows 7样式。所以 这不是excat解决方案

UseExDialog属性设置为true意味着工作正常。但是打印对话框 样式看起来像windows XP打印,而不像windows 7。我需要一些其他的 在64位windows 7操作系统中显示打印对话框的解决方案

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

谢谢

湿婆

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

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


如果您不能或不想设置
UseEXDialog=true
另一种方法是将
平台设置为
x86

的缺点是显而易见的,但是这样做会给您带来的优点,即不需要像以前那样升级.NET框架,这也可能会产生问题


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

找到解决方案了吗?您现在可以不使用“UseEXDialog”-属性执行此操作吗?顺便说一下,
PrintDialog
SaveFileDialog dlg = new SaveFileDialog();    
dlg.AutoUpgradeEnabled = false;