我第一种写法打印一张可以,但是循环打印两张的时候,打停机一直提示正在,打印,然后就没反应了!!!请问哪位大神
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
                e.Graphics.DrawImage(pictureBox1.Image, 10, 20);
        }
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                string bh = dt.Rows[i]["开剪布号"].ToString();
                Bitmap[] maps = new Bitmap[2];
                maps[0] = (Bitmap)zftuhxzh.GetDimensionalCode(bh);//字符串转二维码
                maps[1] = (Bitmap)zftuhxzh.sss("成品号:"+bh, textBox40.Font);//字符串转图片
                pictureBox1.Image = zftuhxzh.MergerImg(maps);//两张图片拼接
                e.Graphics.DrawImage(pictureBox1.Image, 10, 20);
            }
               
        }

解决方案 »

  1.   

    调试下,监控下
    bh,maps,pictureBox1有没有值?
      

  2.   

    printDocument1_PrintPage 用 
    e.HasMorePages = true;
    来控制是否打印下一页你的多页数据的产生,要写成一个方法,按传入的页号,每次返回一页数据,或直接绘制在传入的 Graphics 中
      

  3.   


    我在for循环里加上e.HasMorePages = true;这句话之后,他就无限循环打印,停不下来了!!!!
      

  4.   


    int printPage=0;
    private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
            {
                  var i=printPage;
                    string bh = dt.Rows[i]["开剪布号"].ToString();
                    Bitmap[] maps = new Bitmap[2];
                    maps[0] = (Bitmap)zftuhxzh.GetDimensionalCode(bh);//字符串转二维码
                    maps[1] = (Bitmap)zftuhxzh.sss("成品号:"+bh, textBox40.Font);//字符串转图片
                    pictureBox1.Image = zftuhxzh.MergerImg(maps);//两张图片拼接
                    e.Graphics.DrawImage(pictureBox1.Image, 10, 20);
                   printPage++;
                    if ( dt.Rows.Count <= printPage)
                    {
                        e.HasMorePages = false;
                    }
                    else
                    {
                        e.HasMorePages = true;         //重复调用PrintPage事件
                    }
            }