我是用VS2005开发的
在WinForm中,我想实现一个打印的功能,在一个窗体中有条码,标签,文本框,还有一个DataGridView,我把他们放在一个Panel里
我现在是采用打印窗体的方法,但是在打印的时候我又不希望这个窗体可见,怎么实现?
不用打印窗体的方法还有其他的实现方法吧?

解决方案 »

  1.   

    调用Panel的DrawToBitmap方法,然后打印这张图片。
      

  2.   

    供参考PrintDocument pdcom =new PrintDocument(); 
    pdcom.PrintPage += new PrintPageEventHandler(pdcom_PrintPage); 
    private void pdcom_PrintPage(object sender, PrintPageEventArgs e) 
    {  
        Bitmap bmp =new Bitmap(this.Size); 
        this.DrawToBitmap(bmp, this.ClientRectangle); 
        e.Graphics.DrawImage(bmp, 0, 0); 
    }
      

  3.   

    我写了一个方法,如果要打印的这个窗体是可见的,则可以打印Panel里的内容,但是如果把这个窗体设为不可见,打印出来的内容不是这个Panel里的,而是当前显示窗体的内容
      

  4.   

    我试过上面的代码,
    Bitmap bmp =new Bitmap(this.Size);  这句报语法错误
      

  5.   

    Bitmap bmp =new Bitmap(this.Width, this.Height);  
      

  6.   

    谢谢啊,我所有的控件都放在一个Panel里面,然后用this.Panel1.ClientRectangle
    包括条码控件在内
      

  7.   

    DrawToBitmap  这种对有些控件是无效的。如RichText文本框。只能输出框架,里面有文字的话是绘制不出来的。