在C#,winform下怎样实现使用打印控件printDocument来打印datagridview里的内容?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C#,winform下怎样实现使用打印控件printDocument来打印datagridview里的内容?相关的知识,希望对你有一定的参考价值。

参考技术A

见附件。

追问

你传的附件里的我可以直接用到项目中去吗?,,还有,我用的三层架构的模式,把数据查询出来显示在datagridview中,要打印的话,你的代码我需要怎么修改呢?偶是小白,求教。。。

本回答被提问者采纳
参考技术B 建议用这种方式:DataGridView中的数据导出Excel,可以选择是否显示Excel,然后打印 参考技术C 我也在问这个问题

C#-WinForm-打印控件

打印控件

绘制如下窗体

一、PrintDocument -打印的基础  首先放置PrintDocument控件,双击事件PrintPage设置要打印的样式(李献策lxc)

  

//第一步 设置打印属性
        private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            //设置字体样式
            Font f = new System.Drawing.Font("微软雅黑", 16);
            f = richTextBox1.Font;
            //设置字体颜色
            Brush b = new SolidBrush(richTextBox1.ForeColor);

            //e.绘制.画字符串(要打印的文本,文本格式,画刷-颜色和纹理,位置坐标)
            e.Graphics.DrawString(richTextBox1.Text, f, b, 20, 10);
        }
        //字体样式设置
        private void button4_Click(object sender, EventArgs e)
        {
            DialogResult dr = fontDialog1.ShowDialog();
            if (dr == DialogResult.OK)
            {
                richTextBox1.Font = fontDialog1.Font;
                richTextBox1.ForeColor = fontDialog1.Color;
            }
        }
设置Document

二、PageSetupDialog - 打印页面设置

 //第二步 设置打印页面设置
        private void button1_Click(object sender, EventArgs e)
        {
            pageSetupDialog1.Document = printDocument1;
            pageSetupDialog1.ShowDialog();
        }
打印页面设置

三、1、PrintPreviewContol - 打印预览格式一,在窗体中设置预览区域

//第三步 打印预览一
        private void button2_Click(object sender, EventArgs e)
        {
            printPreviewControl1.Document = printDocument1;
        }
打印预览一

2、PrintPreviewDialog - 打印预览格式二,在弹窗中预览

//第三步 打印预览二
        private void button2_Click(object sender, EventArgs e)
        {
            printPreviewDialog1.Document = printDocument1;
            printPreviewDialog1.ShowDialog();
        }
打印预览二

四、PrintDialog - 开始打印

 //第四步 开始打印
        private void button3_Click(object sender, EventArgs e)
        {
            printDialog1.Document = printDocument1;
            DialogResult dr = printDialog1.ShowDialog();
            if (dr == DialogResult.OK)
            {
                printDocument1.Print();
            }
        }
开始打印

 

以上是关于在C#,winform下怎样实现使用打印控件printDocument来打印datagridview里的内容?的主要内容,如果未能解决你的问题,请参考以下文章

C#winform怎样等所有控件加载完再显示窗体?C#透明窗体显示时闪现黑块怎么解决?

winform中datagridview控件的列名怎样实现多表头?

C# winform做打印预览和打印功能怎么做?

想了解怎么换皮肤的,请教下!(C#winform)

C#Winform程序,怎样实现这种表格

C#-WinForm-打印控件