Aracılığıyla paylaş


Form yazdırma (Windows Forms .NET)

Geliştirme sürecinin bir parçası olarak genellikle Windows Formunuzun bir kopyasını yazdırmak istersiniz. Aşağıdaki kod örneği, yöntemini kullanarak geçerli formun bir kopyasının nasıl yazdırılacağını CopyFromScreen gösterir.

Örnek

Örnek kodu çalıştırmak için forma aşağıdaki ayarlarla iki bileşen ekleyin:

Object Özellik\Olay Değer
Düğme Name Button1
Click Button1_Click
PrintDocument Name PrintDocument1
PrintPage PrintDocument1_PrintPage

tıklandığında Button1 aşağıdaki kod çalıştırılır. Kod, formdan bir Graphics nesne oluşturur ve içeriğini adlı memoryImagebir Bitmap değişkene kaydeder. PrintDocument.Print yöntemi çağrılır PrintPage ve olayı çağırır. Yazdırma olay işleyicisi, bit eşlemi yazıcı sayfasının Graphics nesnesine çizermemoryImage. Yazdırma olayı işleyici kodu döndürdüğünde sayfa yazdırılır.

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

Sağlam programlama

Aşağıdaki koşullar özel bir duruma neden olabilir:

  • Yazıcıya erişim izniniz yok.

  • Yüklü yazıcı yok.

.NET güvenliği

Bu kod örneğini çalıştırmak için, bilgisayarınızla kullandığınız yazıcıya erişim izniniz olmalıdır.

Ayrıca bkz.