چاپ محتویات کنترل GridView در Windows Form با استفاده از #C و VB.NET
دوشنبه 10 فروردین 1394در این مقاله ما نحوه چاپ کنترل DataGridView را در windows Forms با استفاده از دستورات #c و VB.NET شره می دهیم .
برای چاپ محتویات GridView مطابق مراحل زیر عمل میکنیم :
ابتدا یک کنترل DataGridView , یک دکمه , یک کنترل PrintPreviewDialog و یک PrintDocument به فرم خود اضافه می کنیم .
سپس یک DataTable میسازیم و به عنوان پیش فرض اطلاعاتی را در آن قرار می دهیم :
کد #C :
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; }
کد VB.NET :
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
زمانی که دکمه چاپ را کلیک میکنیم , در ابتدا ارتفاع کنترل را با میانگین تعداد سطر محاسبه میکند , سپس یک شئی Bitmap ساخته میشود و کنترل DataGridView در شئی ساخته شده قرار داده میشود و در آخر کنترل PrintPreviewDialog شئ Bitmap ساخته شده را برای تایید آخر به کاربر نمایش می دهد .
کد #C :
Bitmap bitmap; private void btnPrint_Click(object sender, EventArgs e) { //Resize DataGridView to full height. int height = dataGridView1.Height; dataGridView1.Height = dataGridView1.RowCount * dataGridView1.RowTemplate.Height; //Create a Bitmap and draw the DataGridView on it. bitmap = new Bitmap(this.dataGridView1.Width, this.dataGridView1.Height); dataGridView1.DrawToBitmap(bitmap, new Rectangle(0, 0, this.dataGridView1.Width, this.dataGridView1.Height)); //Resize DataGridView back to original height. dataGridView1.Height = height; //Show the Print Preview Dialog. printPreviewDialog1.Document = printDocument1; printPreviewDialog1.PrintPreviewControl.Zoom = 1; printPreviewDialog1.ShowDialog(); } private void PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { //Print the contents. e.Graphics.DrawImage(bitmap, 0, 0); }
کد VB.NET :
Private bitmap As Bitmap Private Sub btnPrint_Click(sender As Object, e As EventArgs) Handles btnPrint.Click 'Resize DataGridView to full height. Dim height As Integer = dataGridView1.Height dataGridView1.Height = dataGridView1.RowCount * dataGridView1.RowTemplate.Height 'Create a Bitmap and draw the DataGridView on it. bitmap = New Bitmap(Me.dataGridView1.Width, Me.dataGridView1.Height) dataGridView1.DrawToBitmap(bitmap, New Rectangle(0, 0, Me.dataGridView1.Width, Me.dataGridView1.Height)) 'Resize DataGridView back to original height. dataGridView1.Height = height 'Show the Print Preview Dialog. 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 'Print the contents. e.Graphics.DrawImage(bitmap, 0, 0) End Sub
- C#.net
- 6k بازدید
- 1 تشکر