Vue d’ensemble du composant PrintDialog (Windows Forms .NET)
L’impression dans Windows Forms consiste principalement à utiliser le PrintDocument composant pour permettre à l’utilisateur d’imprimer. Le PrintPreviewDialog contrôle PrintDialog et PageSetupDialog les composants fournissent une interface graphique familière aux utilisateurs du système d’exploitation Windows.
Le PrintDialog
composant est une boîte de dialogue préconfigurée utilisée pour sélectionner une imprimante, choisir les pages à imprimer et déterminer d’autres paramètres liés à l’impression dans les applications Windows. Il s’agit d’une solution simple pour les paramètres d’imprimante et d’impression au lieu de configurer votre propre boîte de dialogue. Vous pouvez permettre aux utilisateurs d’imprimer de nombreuses parties de leurs documents : imprimer tout, imprimer une plage de pages sélectionnée ou imprimer une sélection. En vous appuyant sur des boîtes de dialogue Windows standard, vous pouvez créer des applications dont la fonction de base est immédiatement familière aux utilisateurs. Le PrintDialog composant hérite de la CommonDialog classe.
En règle générale, vous créez une instance du PrintDocument composant et définissez les propriétés qui décrivent ce qu’il faut imprimer à l’aide des classes et PageSettings des PrinterSettings classes. Appeler la Print méthode imprime réellement le document.
Utilisation du composant
Utilisez la méthode PrintDialog.ShowDialog pour afficher la boîte de dialogue au moment de l’exécution. Ce composant a des propriétés qui sont liées à un seul travail d’impression (PrintDocument classe) ou aux paramètres d’une imprimante individuelle (PrinterSettings classe). L’un des deux, à son tour, peut être partagé par plusieurs imprimantes.
La méthode afficher la boîte de dialogue vous permet d’ajouter une boîte de dialogue d’impression au formulaire. Le PrintDialog composant apparaît dans la barre d’état en bas du Concepteur Windows Forms dans Visual Studio.
Comment capturer l’entrée utilisateur à partir d’un PrintDialog au moment de l’exécution
Vous pouvez définir des options relatives à l’impression au moment du design. Parfois, vous souhaiterez peut-être modifier ces options au moment de l’exécution, probablement en raison des choix effectués par l’utilisateur. Vous pouvez capturer l’entrée utilisateur pour l’impression d’un document à l’aide des composants et des PrintDialogPrintDocument composants. Les étapes suivantes illustrent l’affichage de la boîte de dialogue d’impression d’un document :
Ajoutez un composant et un PrintDialogPrintDocument composant à votre formulaire.
Définissez la Document propriété de l’élément PrintDialogPrintDocument ajouté au formulaire.
PrintDialog1.Document = PrintDocument1
printDialog1.Document = printDocument1;
Affichez le PrintDialog composant à l’aide de la ShowDialog méthode.
If PrintDialog1.ShowDialog() = DialogResult.OK Then PrintDocument1.Print() End If
// display show dialog and if user selects "Ok" document is printed if (printDialog1.ShowDialog() == DialogResult.OK) printDocument1.Print();
Les choix d’impression de l’utilisateur dans la boîte de dialogue seront copiés dans la PrinterSettings propriété du PrintDocument composant.
Comment créer des travaux d’impression
La base de l’impression dans Windows Forms est le PrintDocument composant, plus précisément, l’événement PrintPage . En écrivant du code pour gérer l’événement PrintPage , vous pouvez spécifier ce qu’il faut imprimer et comment l’imprimer. Les étapes suivantes illustrent la création d’un travail d’impression :
Ajoutez un PrintDocument composant à votre formulaire.
Écrivez du code pour gérer l’événement PrintPage .
Vous devrez coder votre propre logique d’impression. En outre, vous devrez spécifier le matériel à imprimer.
En tant que matériau à imprimer, dans l’exemple de code suivant, un exemple de graphique dans la forme d’un rectangle rouge est créé dans le PrintPage gestionnaire d’événements.
Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage e.Graphics.FillRectangle(Brushes.Red, New Rectangle(100, 100, 100, 100)) End Sub
private void PrintDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) => e.Graphics.FillRectangle(Brushes.Red, new Rectangle(100, 100, 100, 100));
Vous pouvez également écrire du code pour les événements et EndPrint les BeginPrint événements. Il permet d’inclure un entier représentant le nombre total de pages à imprimer décrémentées à mesure que chaque page imprime.
Remarque
Vous pouvez ajouter un PrintDialog composant à votre formulaire pour fournir une propre et une interface utilisateur efficace à vos utilisateurs. La définition de la Document propriété du PrintDialog composant vous permet de définir des propriétés liées au document d’impression que vous utilisez sur votre formulaire.
Pour plus d’informations sur les spécificités des travaux d’impression Windows Forms, notamment sur la création d’un travail d’impression par programmation, consultez PrintPageEventArgs.
Procédure d’exécution des travaux d’impression
Fréquemment, les processeurs de texte et d’autres applications qui impliquent l’impression fournissent la possibilité d’afficher un message aux utilisateurs qu’un travail d’impression est terminé. Vous pouvez fournir cette fonctionnalité dans vos Windows Forms en gérant l’événement EndPrint du PrintDocument composant.
La procédure suivante nécessite que vous ayez créé une application Windows avec un PrintDocument composant sur celui-ci. La procédure ci-dessous est la méthode standard d’activation de l’impression à partir d’une application Windows. Pour plus d’informations sur l’impression à partir de Windows Forms à l’aide du PrintDocument composant, consultez Comment créer des travaux d’impression.
Définissez la DocumentName propriété du PrintDocument composant.
PrintDocument1.DocumentName = "SamplePrintApp"
printDocument1.DocumentName = "SamplePrintApp";
Écrivez du code pour gérer l’événement EndPrint .
Dans l’exemple de code suivant, une boîte de message s’affiche, indiquant que le document a terminé l’impression.
Private Sub PrintDocument1_EndPrint(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintEventArgs) Handles PrintDocument1.EndPrint MessageBox.Show(PrintDocument1.DocumentName + " has finished printing.") End Sub
private void PrintDocument1_EndPrint(object sender, System.Drawing.Printing.PrintEventArgs e) => MessageBox.Show(printDocument1.DocumentName + " has finished printing.");
.NET Desktop feedback