Dela via


Översikt över PrintDialog-komponent

Utskrift i Windows Forms består främst av att använda komponenten PrintDocument för att göra det möjligt för användaren att skriva ut. Kontrollen PrintPreviewDialog , PrintDialog, och PageSetupDialog komponenterna tillhandahåller ett välbekant grafiskt gränssnitt för Windows-operativsystemanvändare.

Komponenten PrintDialog är en förkonfigurerad dialogruta som används för att välja en skrivare, välja vilka sidor som ska skrivas ut och fastställa andra utskriftsrelaterade inställningar i Windows-baserade program. Det är en enkel lösning för skrivar- och utskriftsrelaterade inställningar i stället för att konfigurera en egen dialogruta. Du kan göra så att användarna kan skriva ut många delar av sina dokument: skriva ut alla, skriva ut ett markerat sidintervall eller skriva ut en markering. Genom att förlita dig på vanliga Windows-dialogrutor skapar du program vars grundläggande funktioner omedelbart är bekanta för användarna. Komponenten PrintDialog ärver från klassen CommonDialog.

Vanligtvis skapar du en ny instans av komponenten PrintDocument och anger de egenskaper som beskriver vad som ska skrivas ut med hjälp av klasserna PrinterSettings och PageSettings . Anrop till Print metoden skriver faktiskt ut dokumentet.

Arbeta med komponenten

Använd metoden PrintDialog.ShowDialog för att visa dialogrutan vid körning. Den här komponenten har egenskaper som relaterar till antingen ett enda utskriftsjobb (PrintDocument klass) eller inställningarna för en enskild skrivare (PrinterSettings klass). En av de två kan i sin tur delas av flera skrivare.

Metoden visa dialogruta hjälper dig att lägga till dialogrutan skriv ut i formuläret. Komponenten PrintDialog visas i facket längst ned i Windows Forms Designer i Visual Studio.

Så här samlar du in användarindata från en utskriftsdialogruta under körningstid

Du kan ange alternativ som rör utskrift vid designtillfället. Ibland kanske du vill ändra dessa alternativ vid körning, troligtvis på grund av användarens val. Du kan samla in användarindata för att skriva ut ett dokument med hjälp av PrintDialog- och PrintDocument-komponenterna. Följande steg visar hur du visar utskriftsdialogrutan för ett dokument:

  1. Lägg till en PrintDialog och en PrintDocument komponent i formuläret.

  2. Ange egenskapen Document för PrintDialog till PrintDocument som lagts till i formuläret.

    PrintDialog1.Document = PrintDocument1
    
    printDialog1.Document = printDocument1;
    
  3. Visa komponenten PrintDialog med hjälp av metoden 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. Användarens utskriftsalternativ från dialogrutan kopieras till komponentens PrinterSettingsPrintDocument egenskap.

Hur man skapar utskriftsjobb

Grunden för utskrift i Windows Forms är den PrintDocument komponenten – mer specifikt den PrintPage händelsen. Genom att skriva kod för att hantera PrintPage händelsen kan du ange vad du vill skriva ut och hur du skriver ut den. Följande steg visar hur du skapar utskriftsjobb:

  1. Lägg till en PrintDocument komponent i formuläret.

  2. Skriv kod för att hantera händelsen PrintPage.

    Du måste koda din egen utskriftslogik och ange det material som ska skrivas ut.

    Som ett material att skriva ut skapas i följande kodexempel en exempelgrafik i form av en röd rektangel i PrintPage händelsehanteraren.

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

Du kanske också vill skriva kod för BeginPrint händelserna och EndPrint . Det hjälper att inkludera ett heltal som representerar det totala antalet sidor som ska skrivas ut och dekrementeras när varje sida skrivs ut.

Anmärkning

Du kan lägga till en PrintDialog komponent i formuläret för att tillhandahålla ett rent och effektivt användargränssnitt (UI) till dina användare. Document Genom att ange egenskapen för komponenten PrintDialog kan du ange egenskaper som är relaterade till det utskriftsdokument som du arbetar med i formuläret.

Mer information om detaljerna för utskriftsjobb i Windows Forms, inklusive hur du skapar ett utskriftsjobb programmatiskt, finns i PrintPageEventArgs.

Så här slutför du utskriftsjobb

Ordbehandlare och andra program som omfattar utskrift ger ofta möjlighet att visa ett meddelande för användare om att ett utskriftsjobb är klart. Du kan ange den här funktionen i dina Windows-formulär genom att hantera EndPrint händelse för komponenten PrintDocument.

Följande procedur kräver att du har skapat ett Windows-baserat program med en PrintDocument komponent på den. Den här proceduren är standardsättet för att aktivera utskrift från ett Windows-baserat program. Mer information om hur du skriver ut från Windows Forms med hjälp av komponenten PrintDocument finns i Skapa utskriftsjobb.

  1. Ange egenskapen DocumentName för komponenten PrintDocument.

    PrintDocument1.DocumentName = "SamplePrintApp"
    
    printDocument1.DocumentName = "SamplePrintApp";
    
  2. Skriv kod för att hantera händelsen EndPrint.

    I följande kodexempel visas en meddelanderuta som anger att dokumentet har skrivits ut.

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