2011-06-17 18 views
9

Tengo control personalizado con barra de herramientas de impresión item.when imprimir el cuadro de diálogo no viene en Windows 7 con 64 bit os en otro sistema os trabajando bien. problema solo en Windows 7 con 64 bit.printdialog.showdialog(); no muestra el cuadro de diálogo de impresión en Windows 7 con 64 bit

mi problema printdialog no viene en windows 7 os con 64 bit.

comprobé y anhelé -> PrintDialog.ShowDialog() devuelve inmediatamente cancel instasta de mostrar el diálogo que es el problema.

he encontrado la solución para el problema de los enlaces siguientes buscado:

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

estableciendo fiel a UseExDialog propiedad de PrintDialog el cuadro de diálogo aparece y trabajo fine.but este cuadro de diálogo el estilo es como Windows XP no windows7 style.so esto no es una solución excat.

UseExDialog conjuntos de propiedades a medio verdadero trabajo fine.but el diálogo de impresión estilo se parece de impresión de Windows XP no como Windows 7. i necesitan alguna otra solución para mostrar diálogo de impresión en el sistema operativo Windows 7 con 64 bits.

favor proporcionar una solución completa para este problema

Gracias

Siva

+0

Actualice el controlador de la impresora. –

+0

¿Encontró una solución? ¿Puedes hacer esto ahora sin usar la propiedad "UseEXDialog"? – Dave81

Respuesta

19

por Microsoft's Forums:

a través de Mike Dos Zhang (MSFT CSG)

El PrintDialog clase no puede trabajar en AMD64 (la CPU x64 o Any pertenece a los microprocesadores AMD64, incluido intel x64cpu) a menos que establezca la propiedad UseEXDialog en verdadero.

Este es un problema conocido.

Y esta limitación se ha apoyado en framework4 .NET, así que si quieres utilizar esta clase de diálogo con el estilo de Windows 7, entonces usted tendrá que utilizar framework4 .net, o tendrá que volver a utilizar el diálogo de estilo de XP con el conjunto Utilice la propiedadEXDialog en true o utilizando la plataforma de destino x86.

En mi caso, el segundo problema conocido que era ... nos pasaron de 2.0 a .NET .NET 4.0 y que comenzó a trabajar de nuevo sin ningún cambio de código (a la impresión).

+5

Configurar UseEXDialog como verdadero funcionó para mí. – CSharper

-2

Configurando la propiedad del objeto de diálogo AutoUpgradeEnabled para corregir el problema falso al ejecutar en Windows 7 SP1 de 64 bits (la solución se compiló usando VS2008 y .net 2.0).

Ej.

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

por cierto, no existe la propiedad 'AutoUpgradeEnabled' en' PrintDialog' – WiiMaxx

4

Si usted no puede o no desea establecer UseEXDialog = true una alternativa sería la configuración de su Plattform a x86

La desventaja es obvio, pero al hacerlo le debería dar la ventaja de no necesitar actualizar su .NET Framework como uzbones hizo, que también podría crear problemas.

0

Tengo el mismo problema para mi .NET Framework v3.5, la solución actualizada a .NET Framework v4.5 y funcionó bien.

Cuestiones relacionadas