2012-05-13 27 views

Respuesta

16

¿Qué PrintController estás usando?

.NET Framework incluye tres controladores de impresión derivados de PrintController que ayudan a realizar tareas comunes. El StandardPrintController imprime un documento en una impresora. El PreviewPrintController genera una vista previa de cómo se verá el documento cuando se imprima y lo utilizan las clases PrintPreviewControl y PrintPreviewDialog. El PrintControllerWithStatusDialog proporciona un cuadro de diálogo de estado de impresión durante el proceso de impresión.

Parece que usted está utilizando el PrintControllerWithStatusDialogPrintController.


Advertencia: no estoy en condiciones de verificar que la básica PrintController no actúa de la misma manera.

De acuerdo con esta MSDN Forum Posting la PrintControllerWithStatusDialog es el valor predeterminado:

Sugiere algo como esto:

MyPrintDocument.PrintController = new System.Drawing.Printing.StandardPrintController(); 
4

Si no se asigna la propiedad PrintDocument.PrintController entonces obtendrá un controlador de impresión predeterminado. Una instancia de PrintControllerWithStatusDialog que muestra el cuadro de diálogo de progreso, el conteo de páginas y, en general, informa al usuario de que el programa no responde por algún motivo, pero que no se cuelga.

Simplemente reasignarlo en el constructor de formulario. El código repetitivo es:

Public Class Form1 
    Public Sub New() 
     InitializeComponent() 
     PrintDocument1.PrintController = New System.Drawing.Printing.StandardPrintController 
    End Sub 
End Class 

Y tendrá que hacer otra cosa para decirle al usuario que hay una impresión en progreso. Al menos mostrar un hourglass cursor.

Cuestiones relacionadas