现在我要做一个winform项目,要求有答应功能,现在问题是:
要有四个datagrid显示数据,四个datagrid分别为a,b ,c, d
因为这四个表格里面的数据量比较小,如果一个一个打印,会很浪费纸张,现在希望这四个表格打印的时候可以放在一张纸上打印(说明:a,b,c,d这四个表格里面的列数都不一样)
请各位高手指教,让我感激不进,谢谢!!

解决方案 »

  1.   

    直接 page 页面打印 就行了!
      

  2.   

    private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {
    g.DrawString("cedshi",messageFont,Brushes.Black,3,3);
    g.DrawRectangle(pn2,2,2,280,20);
    }



    }
    //调用打印过程
    this.printDocument1.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(this.printDocument1_PrintPage);
    this.printDocument1.Print();
      

  3.   

    给出解决思路:自己写一个公共的类实现从DataGrid类中读取数据,并将数据格式化后输出到打印机. WinForm程序中有实现向打印机输出的类PrintDialog,PrintPreviewDialog,PrintPreviewControl,PrintDocument等,在这几个类中会有画布对象Graphic的,它直接对应打印机设置,直接在上面画图就OK啦.你封装打印功能时使用这些类实现打印功能,至于读取DataGrid中的数据,很简单,我就不说啦:).另外,格式化输出时可能会有些技巧! 其实,说到底就是用程序画图.