Sdílet prostřednictvím


Jak vytisknout formulář

V průběhu návrhu aplikace můžete navrhnout formulář tak, aby představoval vytištěnou stránku. Následující příklad kódu ukazuje, jak vytisknout kopii aktuálního formuláře pomocí CopyFromScreen metody.

Příklad

Pokud chcete spustit ukázkový kód, přidejte do formuláře dvě komponenty s následujícím nastavením:

Objekt Vlastnost\Událost Hodnota
tlačítko Name Button1
Click Button1_Click
PrintDocument Name PrintDocument1
PrintPage PrintDocument1_PrintPage

Po kliknutí se Button1 spustí následující kód. Kód vytvoří Graphics objekt z formuláře a uloží jeho obsah do Bitmap proměnné s názvem memoryImage. Volá se PrintDocument.Print metoda, která vyvolá PrintPage událost. Obslužná rutina události tisku nakreslí memoryImage rastrový obrázek na objektu stránky tiskárny Graphics . Když se vrátí kód obslužné rutiny tiskové události, vytiskne se stránka.

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

Robustní programování

Následující podmínky způsobují výjimku:

  • Nemáte oprávnění pro přístup k tiskárně.
  • Není nainstalovaná žádná tiskárna.

Zabezpečení .NET

Pokud chcete spustit tento příklad kódu, musíte mít oprávnění pro přístup k tiskárně, kterou používáte se svým počítačem.

Viz také