pageSetupDialog

打印设置,和对话框控件差不多的套路,把控件拖到窗口中后,会在下方显示,

然后在制作的菜单中找到打印设置,双击进入点击事件写代码

按照之前的套路,

DialogResult drr = pageSetupDialog1.ShowDialog();
if (drr == DialogResult.OK)
{ }

执行的时候会报错,,就是说问题出现在页面设置,document(类似于一个文档的对象)

在打开打印设置的对话框之前要先告诉它要设置的是什么内容,才能让他把页面设置成什么样。

这里就需要一个这个控件,必须把想要打印的内容放到这个控件上去(不认识什么textbox控件给它让他打印控件),让所有的对话框控件都来针对他进行打印

把这个控件拖过去,还是在下方,右键点击属性,在事件里面有一个Printpage,不管设置什么东西,只要进行打印就会触发这个事件

就相当于一个中介,把要打印的东西都放到这里边,打印控件就从这里面抓要打印的东西,然后每次都会触发这个事件。

在事件后面的括号里,注意一下这里   这个object类型的sender代表的事触发事件的控件, e  就是触发事件中的事件数据。

这里要用这个e  。 这个e就是这个打印事件中的数据。

实际上程序在这不会开你的文字,程序打印的其实是一张图片,所以需要一个绘制的功能,把要打印的东西绘制到这个对象上去。

在这个事件中:

Font f = new Font("黑体",20);
Brush b = new SolidBrush(Color.Red);
e.Graphics.DrawString(textBox1.Text, f, b, 20, 50);    //在这个数据上进行绘制, 绘制什么东西,(把什么东西往上画,用什么样式需要一个font类型(这里字体样式定义一个字体类型属性的变量来来控制),确定颜色和纹理需要一个Brush类型,绘制坐标点(可以通过xy坐标轴来控制)。

DrawString

然后再打印设置里面要声明   打印对象就是这个PrintDocument

private void 打印设置ToolStripMenuItem_Click(object sender, EventArgs e)
{
pageSetupDialog1.Document = printDocument1;
DialogResult drr = pageSetupDialog1.ShowDialog();
if (drr == DialogResult.OK)
{ }
} private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
Font f = new Font("黑体",);
Brush b = new SolidBrush(Color.Red);
e.Graphics.DrawString(textBox1.Text, f, b, , );//在这个数据上进行绘制, 绘制什么东西,(把什么东西往上画,用什么样式需要一个font类型,(这里字体样式定义一个字体类型属性的变量来来控制),确定颜色和纹理需要一个Brush类型,绘制坐标点(可以通过xy坐标轴来控制)。
}

打印预览

private void 打印预览VToolStripMenuItem_Click(object sender, EventArgs e)
{
printPreviewDialog1.Document = printDocument1;
DialogResult dr = printPreviewDialog1.ShowDialog();
if (dr == DialogResult.OK)
{

}
会弹出一个预览打印效果的对话框

就长这样,空的因为里面没写东西。

打印  printDialog

private void 打印PToolStripMenuItem_Click(object sender, EventArgs e)
{
printDialog1.Document = printDocument1; DialogResult dr = printDialog1.ShowDialog();
if (dr == DialogResult.OK)
{
printDocument1.Print();// 选择这个中介里面的打印方法
}
}

这里的 printDialog控件属性可以选择打开,可以选择调整什么属性。

这样打印就完成了。

打印控件:
要打印,第一步先要想到制作打印对象

PrintDocument - 默认事件

Font f = new Font("黑体",20);
Brush b = new SolidBrush(Color.Red);
e.Graphics.DrawString(textBox1.Text, f, b, 20, 50);

通过对于事件数据的绘制来制作要打印的内容

winform 打印的更多相关文章

  1. WinForm打印

    WinForm打印要用打印控件: PageSetupDialog:打印设置对话框 PrintDialog:打印对话框 PrintDocument:要打印的对象,非常重要 PrintPreviewCon ...

  2. c# winform打印excel(使用NPOI+Spire.xls+PrintDocument直接打印excel)

    前言 c#做winform程序要求生成并打印Excel报告,为了不安装Office相应组件,我选择了NPOI来生成Excel报告,用winform的PrintDocument控件来触发打印操作,而难点 ...

  3. winForm 打印预览

    自己很少写技术博客,虽然已经干程序员两年多了,winform开发,web开发都干过,不论项目大小对于.net的相关技术也是了解的,如mvc,wcf,wpf,silverlight,socekt通讯,n ...

  4. [asp.net]c# winform打印类

    using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using ...

  5. winform 打印控件

    (1)PageSetupDialog1    打印设置窗口  (2)PrintDocument     向打印机输送的对象 事件:PrintPage   对于打印的每一页都执行一次 (3)PrintP ...

  6. Winform 打印PDF顺序混乱,获取打印队列

    工作中PDF打印顺序混乱着实让我疼痛了好久,其实决绝方法非常简单,但没有想到这个点子的时候确实让我走了很多弯路 这里文章写出来并不是为了炫耀什么,只是觉得发现些好东西就分享出来而已,同时也做个记录,方 ...

  7. C# winform打印总结 z

    http://blog.csdn.net/jing_xin/article/details/41444063 针对BEIYANG收据打印机 BTP-R580测试通过. 操作说明:http://www. ...

  8. WinForm打印之页边距

    1.启用页边距: 默认情况下PrintDocument是不理会页边距的(MS再次让人无语...),这也是为什么有人说明明设了页边距在打印预览里却没有效果的原因. 解决办法是设置PrintDocumen ...

  9. 【2017-05-03】winform打印控件、事件对象和事件数据、MDI窗体容器

    一.打印控件 第一步先把打印对象搞出来. - printDocument    打印对象(将要打印的内容放到该对象里,从该对象里取内容打印) 设置他的PrintPage事件(对于要打印的每一页触发一次 ...

  10. C# winform 打印事例

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

随机推荐

  1. linux IP局域网监控工具——iptraf

    iptraf iptraf是一款交互式.色彩鲜艳的IP局域网监控工具.它可以显示每个连接以及主机之间传输的数据量.下面是屏幕截图. $ sudo iptraf 安装iptraf: # Centos(基 ...

  2. python 实现一个TwoSum的例子

    今天无意中看到一个题目,也不是很难,就想着用python实现以下: 题目是数组中的两个数相加等于输入的一个target,然后输出数组的下标. 比如: [1,2,3,4,5,6] target=7  返 ...

  3. git教程4-创建分支与删除分支

    一.分支的理解 分支,即branch,用于从主分支(master)中新开辟出一个分支,用于对文件进行修改.这部分修改的内容在新的分支未融合到主分支的情况下,主分支是看不见的.新的分支相当于开辟了新的修 ...

  4. 关于/usr/bin/ld: cannot find -lcrypto 的错误

    Linux下 build code 时,要做 -lssl, -lcrypto 的链接,出现类似下面的错误: /usr/bin/ld: cannot find -lcrypto /usr/bin/ld: ...

  5. GDB Core,gdb 调试大全,core文件调试

    编译: gcc -g -o hello hello.c gdb 调试: 基本 gdb 命令. 命 令 描 述 小结:常用的gdb命令 backtrace 显示程序中的当前位置和表示如何到达当前位置的栈 ...

  6. .net remoting和wcf自托管——一个bug引发的警示

    一.解决问题,需要深入,并从细节入手,多从代码找原因,不能认为代码是死的,不会出错: 之前代码都运行良好,突然某一天,在我电脑上出问题了.出了问题,那就应该找出原因.其实这个问题,本身并不难,好歹给你 ...

  7. 使用sort&awk实现文件内容块排序

    源文件为: [root@luo5 wangxx]# cat -v luo.txt J LuoSoutth jfsaNanjing,china Y ZhangVictory UniversityNejf ...

  8. vs2013-zlib1.2.8编译使用

    1.编译步骤 a.先用vs2013命令行执行下bld_ml32.bat批处理 b.将inffas32.obj和match686.obj复制到目录zlib128\zlib-1.2.8 c.打开zlib- ...

  9. 开启VMSS Autoscale的报警功能

    VMSS可以自动的实现Scale Out和Scale in.在VMSS做自动操作的时候,可以通过配置通知服务,通知VMSS的状态. 具体实现方式: 1, 在portal中选择"监视器&quo ...

  10. Python numpy函数:reshape()

    reshape()函数用于改变数组对象的形状: import numpy as np a = np.array([1,2,3,4,5,6,7,8]) #转换成2D数组 b = a.reshape((2 ...