Jak wydrukować formularz

Podczas projektowania aplikacji można zaprojektować formularz reprezentujący wydrukowaną stronę. Poniższy przykład kodu pokazuje, jak wydrukować kopię bieżącego formularza przy użyciu metody CopyFromScreen.

Przykład

Aby uruchomić przykładowy kod, dodaj dwa składniki do formularza z następującymi ustawieniami:

Przedmiot Właściwość\Zdarzenie Wartość
przycisk Name Button1
Click Button1_Click
PrintDocument Name PrintDocument1
PrintPage PrintDocument1_PrintPage

Poniższy kod jest uruchamiany po wybraniu polecenia Button1. Kod tworzy Graphics obiekt z formularza i zapisuje jego zawartość w zmiennej Bitmap o nazwie memoryImage. Kod wywołuje metodę PrintDocument.Print , która wywołuje PrintPage zdarzenie. Procedura obsługi zdarzenia drukowania rysuje bitmapę memoryImage na obiekcie strony Graphics drukarki. Gdy zostanie zwrócony kod programu obsługi zdarzeń drukowania, strona zostanie wydrukowana.

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

Niezawodne programowanie

Następujące warunki powodują wyjątek:

  • Nie masz uprawnień dostępu do drukarki.
  • Nie zainstalowano drukarki.

Zabezpieczenia platformy .NET

Aby uruchomić ten przykład kodu, musisz mieć uprawnienia dostępu do drukarki używanej z komputerem.

Zobacz także