为什么我用printdocument实现在打印不能分页啊.只能打印一页.如果设置e.hasmorepages=true.便会是个死循环.打印无数张相同的第一页.这是怎么事儿啊,请高手们帮帮我啊!谢谢!

解决方案 »

  1.   

    e.hasmorepages=true后,printdocument将新启一页,并再次调用PrintPage方法,你将e.hasmorepages=true写在了PrintPage方法里面,当然会反复调用了,正确的方法是,设置一个private变量,然后在PrintPage中修改这些变量值,只有符合条件的才打印,如果需要打印新页才e.hasmorepages=true,将个例子,假如已知有三页,设一个变量,private int m_CurPage=0;表示当前是第几页,然后在PrintPage方法中,用类似下面的方法
    if(m_CurPage==0)//第一页
    {
      g.DrawText(……);//第一页要打印的内容}
    else if(m_CurPage==1)
    {
        //第二页要打印的内容
    }
    else if ……
    {
      //第n页要打印的内
    }
    m_CurPage++;
    if(m_CurPage <TotalPage)//未打印完成
       e.hasmorepages=true;
      

  2.   

    谢谢gatr()打印的问题解决了!:)