Partager via


Vue d’ensemble du composant PrintDialog (Windows Forms .NET)

L’impression dans Windows Forms consiste principalement à utiliser le composant PrintDocument pour permettre à l’utilisateur d’imprimer. Le contrôle PrintPreviewDialog, les composants PrintDialog et PageSetupDialog fournissent une interface graphique familière aux utilisateurs du système d’exploitation Windows.

Le composant PrintDialog 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 s’appuyant sur des boîtes de dialogue Windows standard, vous créez des applications dont les fonctionnalités de base sont immédiatement familières aux utilisateurs. Le composant PrintDialog hérite de la classe CommonDialog.

En règle générale, vous créez une instance du composant PrintDocument et définissez les propriétés qui décrivent ce qu’il faut imprimer à l’aide des classes PrinterSettings et PageSettings. Appeler la méthode Print 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 concernent un travail d’impression unique (classePrintDocument) ou les paramètres d’une imprimante individuelle (classePrinterSettings). 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 composant PrintDialog 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 les entrées utilisateur pour l’impression d’un document à l’aide des composants PrintDialog et PrintDocument. Les étapes suivantes illustrent l’affichage de la boîte de dialogue d’impression d’un document :

  1. Ajoutez un composant PrintDialog et un composant PrintDocument à votre formulaire.

  2. Définissez la propriété Document du PrintDialog sur la PrintDocument ajoutée au formulaire.

    PrintDialog1.Document = PrintDocument1
    
    printDialog1.Document = printDocument1;
    
  3. Affichez le composant PrintDialog à l’aide de la méthode ShowDialog.

    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();
    
  4. Les choix d’impression de l’utilisateur dans la boîte de dialogue sont copiés dans la propriété PrinterSettings du composant PrintDocument.

Comment créer des travaux d’impression

La base de l’impression dans Windows Forms est le composant PrintDocument, 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 :

  1. Ajoutez un composant PrintDocument à votre formulaire.

  2. É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 gestionnaire d’événements PrintPage.

    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 BeginPrint et EndPrint. Il permet d’inclure un entier représentant le nombre total de pages à imprimer qui se décrémente au fur et à mesure que chaque page est imprimée.

Note

Vous pouvez ajouter un composant PrintDialog à votre formulaire pour fournir une interface utilisateur propre et efficace à vos utilisateurs. La définition de la propriété Document du composant PrintDialog 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 composant PrintDocument.

La procédure suivante nécessite que vous ayez créé une application Windows avec un composant PrintDocument 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 composant PrintDocument, consultez Comment créer des travaux d’impression.

  1. Définissez la propriété DocumentName du composant PrintDocument.

    PrintDocument1.DocumentName = "SamplePrintApp"
    
    printDocument1.DocumentName = "SamplePrintApp";
    
  2. É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.");