如何打印Form?
http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=64998

解决方案 »

  1.   

    http://www.c-sharpcorner.com/Code/2003/March/FormPrinting.asp
      

  2.   


    Http://www.codeproject.com上找一下,很多的。
    肯定有你要的。
      

  3.   

    最近给公司做了个通用打印方案,下面是我的思路,希望对你有帮助
    第1步:定义两个XML对象,一个存储数据(XML数据源),一个作为模板(其实这是一个xslt文件),首先将界面上的数据转换成XML数据(XML数据源),然后通过xslt转换,注意转换之后的对象还是一个xml,而不是平时一般的转换成html(如果你转换成html也可以,这样你可以通过IE的打印功能将html打印,但这样并不是我想要的结果,主要问题是分页不能控制),这样处理之后的结果是数据和格式混合,例如<text id="Text1" x="450" y="40" fontname="Arial" fontsize="24" fontcolor="Black" b="true" i="false" u="true">文字数据 </text>
    第2步:定义一个类(Element),一个虚函数Draw(),派生出很多你想的对象,例如上面的text,你可以这样写
    public class text:Element
    {
    public override bool Draw(Graphics g)
    {
    //具体实现
    }
    }
    你也可以为你的Lable,TextBox,DataGrid实现各自的Draw方法(注意实现直接DataGrid的draw()很麻烦啊,并且很不通用,你要想办法)。
    第3步:用一个解释器,将上面的的XML对象的每个元素打印出来。