Freigeben über


Drucken eines Formulars (Windows Forms .NET)

Im Rahmen des Entwicklungsprozesses möchten Sie in der Regel ein Exemplar Ihres Windows-Formulars drucken. Im folgenden Codebeispiel wird gezeigt, wie ein Exemplar des aktuellen Formulars mithilfe der CopyFromScreen-Methode drucken.

Beispiel

Um den Beispielcode auszuführen, fügen Sie einem Formular zwei Komponenten mit den folgenden Einstellungen hinzu:

Objekt Eigenschaft\Ereignis Wert
Schaltfläche Name Button1
Click Button1_Click
PrintDocument Name PrintDocument1
PrintPage PrintDocument1_PrintPage

Der folgende Code wird ausgeführt, wenn auf Button1 geklickt wird. Der Code erstellt ein Graphics Objekt aus dem Formular und speichert seinen Inhalt in einer Bitmap Variablen mit dem Namen memoryImage. Die PrintDocument.Print Methode wird aufgerufen, wodurch das PrintPage Ereignis aufgerufen wird. Der Druckereignishandler zeichnet die memoryImage Bitmap auf dem Objekt Graphics der Druckerseite. Wenn der Druckereignishandlercode zurückgegeben wird, wird die Seite gedruckt.

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

Stabile Programmierung

Die folgenden Bedingungen können einen Ausnahmefehler verursachen:

  • Sie haben keine Berechtigung zum Zugriff auf diesen Drucker.

  • Es ist kein Drucker installiert.

.NET-Sicherheit

Um dieses Codebeispiel auszuführen, müssen Sie über die Berechtigung zum Zugriff auf den Drucker verfügen, den Sie mit Ihrem Computer verwenden.

Weitere Informationen