Cuando uso MyPrintDocument.print()
en una aplicación de Windows escrita en C #, se muestra un diálogo para la rutina de impresión de procesamiento de Windows con un botón de cancelar. No quiero que se muestre este diálogo, ¿es posible?
Si no, ¿qué camino debo usar? Mi progtwig usa una impresora térmica.
¿Qué PrintController estás usando?
.NET Framework incluye tres controladores de impresión derivados de
PrintController
que ayudan a realizar tareas comunes.StandardPrintController
imprime un documento en una impresora. ElPreviewPrintController
genera una vista previa de cómo se verá el documento cuando se imprime y lo utilizan las clasesPrintPreviewControl
yPrintPreviewDialog
.PrintControllerWithStatusDialog
proporciona un cuadro de diálogo de estado de impresión durante el proceso de impresión.
Parece que está utilizando PrintControllerWithStatusDialog
PrintController
.
Advertencia: no estoy en condiciones de verificar que el PrintController
básico no actúe de la misma manera.
De acuerdo con este foro de MSDN Publicar el PrintControllerWithStatusDialog
es el valor predeterminado:
Él sugiere algo como esto:
MyPrintDocument.PrintController = new System.Drawing.Printing.StandardPrintController();
Si no asigna la propiedad PrintDocument.PrintController
, obtendrá un controlador de impresión predeterminado. Una instancia de PrintControllerWithStatusDialog
que muestra el cuadro de diálogo de progreso, el recuento de páginas y, en general, informa al usuario de que el progtwig 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 algo más para decirle al usuario que una impresión está en progreso. Al menos mostrar un cursor de reloj de arena .