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.
Im folgenden Beispiel wird dem Formular eine Schaltfläche namens Button1 hinzugefügt. Wenn Sie auf die Schaltfläche Button1 klicken, wird das Formular in einem Bild im Arbeitsspeicher gespeichert und dann an das Druckobjekt gesendet.
Beispiel
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 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
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
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
.NET Desktop feedback
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für