c# Desktop

Form Sayfasını Yazdıran c# Form Uygulaması

Masaüstü uygulamalarında en önemli aşamalardan biri de yapılan işlemlerin yazıcıdan çıktı olarak alınmasıdır. Bu uygulamamızda form sayfasında görüntülenen nesnelerin tamamını yazıcıdan şıktı olarak alacağız.

Aşağıdaki kodları düzenleyiniz.

using System;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
 
namespace Print_Form_CS
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            this.BindDataGridView();
        }
 
        private void BindDataGridView()
        {
            DataTable dt = new DataTable();
            dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id", typeof(int)),
                                new DataColumn("Name", typeof(string)),
                                new DataColumn("Country",typeof(string)) });
            dt.Rows.Add(1, "John Hammond", "United States");
            dt.Rows.Add(2, "Mudassar Khan", "India");
            dt.Rows.Add(3, "Suzanne Mathews", "France");
            dt.Rows.Add(4, "Robert Schidner", "Russia");
            this.dataGridView1.DataSource = dt;
        }
 
        Bitmap bitmap;
        private void btnPrint_Click(object sender, EventArgs e)
        {
            //Panel nesnesi ekleme.
            Panel panel = new Panel();
            this.Controls.Add(panel);
 
            //Formun boyutunda bir Bitmap oluşturalım.
            Graphics grp = panel.CreateGraphics();
            Size formSize = this.ClientSize;
            bitmap = new Bitmap(formSize.Width, formSize.Height, grp);
            grp = Graphics.FromImage(bitmap);
 
            //Panelin kapladığı ekran alanını kopyalayalım.
            Point panelLocation = PointToScreen(panel.Location);
            grp.CopyFromScreen(panelLocation.X, panelLocation.Y, 0, 0, formSize);
 
            //Sonucu baskı önizleme kutusunda gösterelim.
            printPreviewDialog1.Document = printDocument1;
            printPreviewDialog1.PrintPreviewControl.Zoom = 1;
            printPreviewDialog1.ShowDialog();
        }
 
        private void PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            //İçeriği yazdıralım.
            e.Graphics.DrawImage(bitmap, 0, 0);
        }
    }
}

Uygulamanın Vb.Net kodları aşağıdaki gibidir.

Public Class Form1
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        BindDataGridView()
    End Sub
    Private Sub BindDataGridView()
        Dim dt As New DataTable()
        dt.Columns.AddRange(New DataColumn(2) {New DataColumn("Id", GetType(Integer)), New DataColumn("Name", GetType(String)), New DataColumn("Country", GetType(String))})
        dt.Rows.Add(1, "John Hammond", "United States")
        dt.Rows.Add(2, "Mudassar Khan", "India")
        dt.Rows.Add(3, "Suzanne Mathews", "France")
        dt.Rows.Add(4, "Robert Schidner", "Russia")
        Me.dataGridView1.DataSource = dt
    End Sub
 
    Private bitmap As Bitmap
    Private Sub btnPrint_Click(sender As Object, e As EventArgs) Handles btnPrint.Click
        'Panel nesnesi ekleme.
        Dim panel As New Panel()
        Me.Controls.Add(panel)
 
        'Formun boyutunda bir Bitmap oluşturalım.
        Dim grp As Graphics = panel.CreateGraphics()
        Dim formSize As Size = Me.ClientSize
        bitmap = New Bitmap(formSize.Width, formSize.Height, grp)
        grp = Graphics.FromImage(bitmap)
 
        'Panelin kapladığı ekran alanını kopyalayalım.
        Dim panelLocation As Point = PointToScreen(panel.Location)
        grp.CopyFromScreen(panelLocation.X, panelLocation.Y, 0, 0, formSize)
 
        'Sonucu baskı önizleme kutusunda gösterelim.
        printPreviewDialog1.Document = printDocument1
        printPreviewDialog1.PrintPreviewControl.Zoom = 1
        printPreviewDialog1.ShowDialog()
    End Sub
 
    Private Sub PrintPage(sender As Object, e As System.Drawing.Printing.PrintPageEventArgs) Handles printDocument1.PrintPage
        'İçeriği yazdıralım.
        e.Graphics.DrawImage(bitmap, 0, 0)
    End Sub
End Class
 

Etiketler
print print preview form panel 
İlgili Makaleler
Veri Girişi Doğrulama (Input Validation)
Basit Veri Bağlama (Simple Data Binding)
c# Programında Bigpara Sayfasından Borsa Verilerini Selenium Kütüphanesini Kullanarak Çekme
Kompleks Veri Bağlama (Complex Data Binding)
TabControl Panelini Kullanarak Lokantalar İçin Müşteri Siparişi Alan c# Form Uygulaması
Veri Girişi Maskeleme (MaskedTextBox)
Yıkıcı Metotlar (Destructors)
Kaçan Buton Oyununu Yapan c# Uygulaması
2020 TYT Matematik Ortakatlı Kuralıyla İlgili Sorunun Çözümünü c# Diliyle Kodlama
Konsol Ekranında Kod Yazma ve Çalıştırma
Form Sınıfı
Form Sınıfına Ait Bazı Olayların ve Özelliklerin Kullanılmasına Ait Örnek Uygulama
Verilen İki Matrisi Çarpan Programı c# Dilinde Form Ortamında Yapınız
c# Console Uygulamalarında Ping Nasıl Kullanılır, Ping Atma
Rastgele Seçilen Bir Sayıyı Basamaklarına Ayıran, Basamak Değerini ve Sayı Değerini Bulan c# Console Uygulaması
Metodu Sonlandırma
Kredi Kartı Taksitlendirme İşlemini Yapan c# Uygulaması
Sayısal Loto Çekilişini Yapan c# Uygulaması
Yapıcı Metotlar (Constructors)
Yazı Tura Oyunu Yapan c# Uygulaması

Yorum Ekle
   
Kötü
İyi