⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datagridprinter.cs

📁 大二做的课程设计。一个学生信息管理系统
💻 CS
字号:
using System;
using System.Windows.Forms;
using System.Drawing.Printing;
using System.Drawing;
using System.Data;
using System.Collections;

namespace Students1
{
        public class DataGridPrinter
        {

            private DataGrid dataGrid;
            private PrintDocument printDocument;
            private PageSetupDialog pageSetupDialog;
            private PrintPreviewDialog printPreviewDialog;

            public DataGridPrinter()
            {
                printDocument = new PrintDocument();
                printDocument.PrintPage += new PrintPageEventHandler(this.printDocument_PrintPage);
            }

            public DataGridPrinter(DataGrid dataGrid)
            {
                this.dataGrid = dataGrid;
                printDocument = new PrintDocument();
                printDocument.PrintPage += new PrintPageEventHandler(this.printDocument_PrintPage);
            }


            private void printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
            {
                int rowCount = 0;
                int colCount = 0;
                int x = 0;
                int y = 0;
                int rowGap = 20;
                int colGap = 5;
                int leftMargin = 50;
                Font font = new Font("Arial", 10);
                Font headingFont = new Font("Arial", 11, FontStyle.Underline);
                Font captionFont = new Font("Arial", 10, FontStyle.Bold);
                Brush brush = new SolidBrush(Color.Black);
                string cellValue = "";

                string my = dataGrid.DataSource.GetType().ToString();

                if (my == "System.Data.DataView")
                {
                    rowCount = ((DataView)dataGrid.DataSource).Count;
                }
                else
                {
                    rowCount = ((DataTable)dataGrid.DataSource).Rows.Count;
                }

                //rowCount = ((DataTable)dataGrid.DataSource).Rows.Count;
                //rowCount = ((DataView)dataGrid.DataSource).Count;

                colCount = dataGrid.TableStyles[0].GridColumnStyles.Count;

                //print caption
                if (dataGrid.CaptionVisible)
                {
                    y += rowGap;
                    x = leftMargin;
                    e.Graphics.DrawString(dataGrid.CaptionText, captionFont, brush, x, y);
                }

                //print headings 
                y += rowGap;
                x = leftMargin;
                for (int j = 0; j < colCount; j++)
                {
                    if (dataGrid.TableStyles[0].GridColumnStyles[j].Width > 0)
                    {
                        cellValue = dataGrid.TableStyles[0].GridColumnStyles[j].HeaderText;
                        e.Graphics.DrawString(cellValue, headingFont, brush, x, y);
                        x += dataGrid.TableStyles[0].GridColumnStyles[j].Width + colGap;
                    }
                }

                for (int i = 0; i < rowCount; i++)
                {
                    y +=rowGap;
                    x = leftMargin;
                    for (int j = 0; j < colCount; j++)
                    {
                        if (dataGrid.TableStyles[0].GridColumnStyles[j].Width > 0)
                        {
                            cellValue = dataGrid[i, j].ToString();
                            e.Graphics.DrawString(cellValue, headingFont, brush, x, y);
                            x += dataGrid.TableStyles[0].GridColumnStyles[j].Width + colGap;
                            y = y + rowGap * (cellValue.Split(new char[] { '\r', '\n' }).Length - 1);
                        }

                    }
                }
                
                string s = cellValue;
                string f3 = cellValue;
            }

            public PrintDocument GetPrintDocument()
            {
                return printDocument;
            }

            public void Print()
            {
                try
                {
                    pageSetupDialog = new PageSetupDialog();
                    pageSetupDialog.Document = printDocument;
                    pageSetupDialog.Document.DefaultPageSettings.Landscape = true;
                    if (pageSetupDialog.ShowDialog() == DialogResult.OK)
                    {
                        printPreviewDialog = new PrintPreviewDialog();
                        printPreviewDialog.Document = printDocument;
                        printPreviewDialog.Height = 600;
                        printPreviewDialog.Width = 800;
                        printPreviewDialog.ShowDialog();
                    }
                }
                catch (Exception e)
                {
                    throw new Exception("Printer error." + e.Message);
                }
            }
        }
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -