Delen via


Overzicht van PrintDialog-onderdelen (Windows Forms .NET)

Afdrukken in Windows Forms bestaat voornamelijk uit het gebruik van het onderdeel PrintDocument om de gebruiker in staat te stellen af te drukken. De PrintPreviewDialog-besturingselementen, PrintDialog en PageSetupDialog onderdelen bieden een vertrouwde grafische interface voor gebruikers van het Windows-besturingssysteem.

Het PrintDialog onderdeel is een vooraf geconfigureerd dialoogvenster dat wordt gebruikt om een printer te selecteren, de pagina's te kiezen die moeten worden afgedrukt en andere afdrukinstellingen in Windows-toepassingen te bepalen. Het is een eenvoudige oplossing voor printer- en afdrukinstellingen in plaats van uw eigen dialoogvenster te configureren. U kunt gebruikers in staat stellen om veel delen van hun documenten af te drukken: alle afdrukken, een geselecteerd paginabereik afdrukken of een selectie afdrukken. Door te vertrouwen op standaarddialoogvensters van Windows, maakt u toepassingen waarvan de basisfunctionaliteit onmiddellijk bekend is voor gebruikers. Het PrintDialog-onderdeel neemt over van de CommonDialog-klasse.

Normaal gesproken maakt u een nieuw exemplaar van het PrintDocument-onderdeel en stelt u de eigenschappen in die beschrijven wat u wilt afdrukken met behulp van de PrinterSettings- en PageSettings-klassen. Met de aanroep van de methode Print wordt het document daadwerkelijk afgedrukt.

Werken met het onderdeel

Gebruik de methode PrintDialog.ShowDialog om het dialoogvenster tijdens runtime weer te geven. Dit onderdeel heeft eigenschappen die betrekking hebben op één afdruktaak (PrintDocument klasse) of de instellingen van een afzonderlijke printer (PrinterSettings klasse). Een van de twee kan op zijn beurt door meerdere printers worden gedeeld.

Met de methode voor het weergeven van een dialoogvenster kunt u een afdrukdialoogvenster aan het formulier toevoegen. Het PrintDialog-component wordt weergegeven in de lade onderaan de Windows Forms Designer in Visual Studio.

Gebruikersinvoer vastleggen vanuit een PrintDialog tijdens runtime

U kunt opties instellen die betrekking hebben op afdrukken tijdens het ontwerp. Soms wilt u deze opties tijdens runtime wijzigen, waarschijnlijk vanwege keuzes die door de gebruiker zijn gemaakt. U kunt gebruikersinvoer vastleggen voor het afdrukken van een document met behulp van de PrintDialog en de PrintDocument onderdelen. De volgende stappen laten zien hoe het afdrukdialoogvenster voor een document wordt weergegeven:

  1. Voeg een PrintDialog en een PrintDocument-onderdeel toe aan uw formulier.

  2. Stel de eigenschap Document van de PrintDialog in op de PrintDocument dat aan het formulier is toegevoegd.

    PrintDialog1.Document = PrintDocument1
    
    printDialog1.Document = printDocument1;
    
  3. Geef het PrintDialog onderdeel weer met behulp van de methode 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. De afdrukopties van de gebruiker in het dialoogvenster worden gekopieerd naar de eigenschap PrinterSettings van het PrintDocument onderdeel.

Hoe afdruktaken te maken

De basis van afdrukken in Windows Forms is het PrintDocument onderdeel, met name de PrintPage gebeurtenis. Door code te schrijven om de gebeurtenis PrintPage af te handelen, kunt u opgeven wat u wilt afdrukken en hoe u deze wilt afdrukken. De volgende stappen laten zien hoe u een afdruktaak maakt:

  1. Voeg een PrintDocument-onderdeel toe aan uw formulier.

  2. Schrijf code om de PrintPage gebeurtenis af te handelen.

    U moet uw eigen afdruklogica codeeren. Daarnaast moet u het materiaal opgeven dat moet worden afgedrukt.

    Voor het afdrukken van materiaal wordt in het codevoorbeeld hieronder een voorbeeldafbeelding in de vorm van een rode rechthoek gecreëerd in de PrintPage event handler.

    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));
    

Mogelijk wilt u ook code schrijven voor de BeginPrint- en EndPrint-gebeurtenissen. Het is nuttig om een geheel getal op te nemen dat het totale aantal te printen pagina's vertegenwoordigt en dat met elke geprinte pagina wordt verminderd.

Notitie

U kunt een PrintDialog-onderdeel aan uw formulier toevoegen om uw gebruikers een schone en efficiënte gebruikersinterface (UI) te bieden. Als u de eigenschap Document van het PrintDialog-onderdeel instelt, kunt u eigenschappen instellen die betrekking hebben op het afdrukdocument waarmee u aan het formulier werkt.

Zie PrintPageEventArgsvoor meer informatie over de details van Afdruktaken in Windows Forms, waaronder het programmatisch maken van een afdruktaak.

Afdruktaken voltooien

Vaak bieden tekstverwerkers en andere toepassingen die betrekking hebben op afdrukken de mogelijkheid om een bericht weer te geven aan gebruikers die een afdruktaak hebben voltooid. U kunt deze functionaliteit in uw Windows Forms bieden door de EndPrint gebeurtenis van het PrintDocument onderdeel te verwerken.

Voor de volgende procedure moet u een Windows-toepassing met een PrintDocument-onderdeel maken. De onderstaande procedure is de standaardmethode voor het inschakelen van afdrukken vanuit een Windows-toepassing. Zie Afdruktaken makenvoor meer informatie over afdrukken vanuit Windows Forms met behulp van het onderdeel PrintDocument.

  1. Stel de eigenschap DocumentName van het PrintDocument-onderdeel in.

    PrintDocument1.DocumentName = "SamplePrintApp"
    
    printDocument1.DocumentName = "SamplePrintApp";
    
  2. Schrijf code om de EndPrint gebeurtenis af te handelen.

    In het volgende codevoorbeeld wordt een berichtvak weergegeven, waarmee wordt aangegeven dat het document is afgedrukt.

    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.");