Hoe een formulier af te drukken

Wanneer u een app ontwerpt, kunt u een formulier ontwerpen dat een afgedrukte pagina vertegenwoordigt. In het volgende codevoorbeeld ziet u hoe u een kopie van het huidige formulier kunt afdrukken met behulp van de methode CopyFromScreen.

Voorbeeld

Als u de voorbeeldcode wilt uitvoeren, voegt u twee onderdelen toe aan een formulier met de volgende instellingen:

Voorwerp Eigenschap\Gebeurtenis Waarde
knop Name Button1
Click Button1_Click
PrintDocument Name PrintDocument1
PrintPage PrintDocument1_PrintPage

De volgende code wordt uitgevoerd wanneer u selecteert Button1. De code maakt een Graphics object op basis van het formulier en slaat de inhoud ervan op in een Bitmap variabele met de naam memoryImage. De code roept de PrintDocument.Print methode aan, die de PrintPage gebeurtenis aanroept. De afdrukgebeurtenishandler tekent de memoryImage bitmap op het Graphics object van de printerpagina. Wanneer de code van de afdrukgebeurtenishandler wordt geretourneerd, wordt de pagina afgedrukt.

namespace Sample_print_win_form1
{
    public partial class Form1 : Form
    {
        Bitmap memoryImage;
        public Form1()
        {
            InitializeComponent();
        }

        private void Button1_Click(object sender, EventArgs e)
        {
            Graphics myGraphics = this.CreateGraphics();
            Size s = this.Size;
            memoryImage = new Bitmap(s.Width, s.Height, myGraphics);
            Graphics memoryGraphics = Graphics.FromImage(memoryImage);
            memoryGraphics.CopyFromScreen(this.Location.X, this.Location.Y, 0, 0, s);

            printDocument1.Print();
        }

        private void PrintDocument1_PrintPage(
           System.Object sender,
           System.Drawing.Printing.PrintPageEventArgs e)
        {
            e.Graphics.DrawImage(memoryImage, 0, 0);
        }
    }
}
Public Class Form1
    
    Dim memoryImage As Bitmap

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
         
        Dim myGraphics As Graphics = Me.CreateGraphics()
        Dim s As Size = Me.Size
        memoryImage = New Bitmap(s.Width, s.Height, myGraphics)
        Dim memoryGraphics As Graphics = Graphics.FromImage(memoryImage)
        memoryGraphics.CopyFromScreen(Me.Location.X, Me.Location.Y, 0, 0, s)
        
        PrintDocument1.Print()
        
    End Sub

    Private Sub PrintDocument1_PrintPage(
        ByVal sender As System.Object, 
        ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage

        e.Graphics.DrawImage(memoryImage, 0, 0)
        
    End Sub
End Class

Robuuste programmering

De volgende voorwaarden veroorzaken een uitzondering:

  • U bent niet gemachtigd om toegang te krijgen tot de printer.
  • Er is geen printer geïnstalleerd.

.NET-beveiliging

Als u dit codevoorbeeld wilt uitvoeren, moet u gemachtigd zijn voor toegang tot de printer die u met uw computer gebruikt.

Zie ook