Lorsque j’utilise MyPrintDocument.print()
dans une application Windows écrite en C #, une boîte de dialog s’affiche pour la routine d’impression du traitement Windows avec un bouton d’annulation. Je ne veux pas que cette boîte de dialog soit affichée, est-ce possible?
Si non, de quelle manière devrais-je utiliser? Mon programme utilise une imprimante thermique.
Quel PrintController utilisez-vous?
Le .NET Framework comprend trois contrôleurs d’impression dérivés de
PrintController
qui facilitent l’exécution des tâches courantes.StandardPrintController
imprime un document sur une imprimante.PreviewPrintController
génère un aperçu de l’apparence du document lorsqu’il est imprimé et est utilisé par les classesPrintPreviewControl
etPrintPreviewDialog
.PrintControllerWithStatusDialog
fournit une boîte de dialog d’état d’impression pendant le processus d’impression.
On dirait que vous utilisez PrintControllerWithStatusDialog
PrintController
.
Avertissement: je ne suis pas en mesure de vérifier que le PrintController
base PrintController
pas de la même manière.
Selon ce forum MSDN, la PrintControllerWithStatusDialog
par défaut de PrintControllerWithStatusDialog
est la suivante:
Il suggère quelque chose comme ceci:
MyPrintDocument.PrintController = new System.Drawing.Printing.StandardPrintController();
Si vous n’affectez pas la propriété PrintDocument.PrintController
, vous obtenez un contrôleur d’impression par défaut. Une instance de PrintControllerWithStatusDialog
qui affiche la boîte de dialog de progression, compte les pages et informe généralement l’utilisateur que le programme ne répond pas pour une raison, mais qu’il n’est pas bloqué.
Il suffit de le réaffecter dans le constructeur de formulaire. Le code de la plaque chauffante est:
Public Class Form1 Public Sub New() InitializeComponent() PrintDocument1.PrintController = New System.Drawing.Printing.StandardPrintController End Sub End Class
Et vous devrez faire autre chose pour informer l’utilisateur qu’une impression est en cours. Au moins afficher un curseur de sablier .