就是我的打印页有几个变量,这些变量都是从数据库中读入的,从数据库每读入一行就生成一个新的打印页,也就是在打印预览里有了多页预览,小弟表述不是很清楚,说的不对的地方多包含,大致就是这么一个意思。以下是代码private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {            Graphics g = e.Graphics;            e.Graphics.DrawString("盘点时间", new Font("Arial", 16, FontStyle.Bold), Brushes.Black, 130, 130);
            e.Graphics.DrawString("机种", new Font("Arial", 16, FontStyle.Bold), Brushes.Black, 130, 210);
            e.Graphics.DrawString(jz, new Font("Arial", 16, FontStyle.Bold), Brushes.Black, 130, 210);
         }
这就是打印页,jz是从数据库读入的,比如我从数据库读入了10行,就有10个打印预览页,每一页的jz就对应从数据库读入的10行中每一行。求高手解答,小弟研究了2天,还是没研究出来。

解决方案 »

  1.   

    e.hasmorePage(记不太清了) 吧,设置为true,就会继续进行。 
      

  2.   

    我加了 e.hasmorePage = true,点打印预览之后就无限在那里读页码
      

  3.   

     private void printView_Click(object sender, EventArgs e)//打印预览
            {
                
                PrintPreviewDialog printPreviewDialog = new PrintPreviewDialog();
                printPreviewDialog.Document = printDocument1;
                
                try
                {
                    printPreviewDialog.ShowDialog();
                }
                catch (Exception excep)
                {
                    MessageBox.Show(excep.Message, "打印出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
    这个是打印预览的代码,是不是哪里要修改
      

  4.   

    判断当前页和最大页,e.hasmorePage = true
      

  5.   

    不太清楚你的意思,我记得我winform里面做的水晶报表在显示的时候就是可以分页看的,不过没做打印预览,因为打印的效果跟报表显示的效果是一样的.
      

  6.   

    最大页打完时,hasmorepages设置为false.
      

  7.   

            private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) {
                // e.HasMorePages = true;        }这里写代码,弄个计数变量。
    打个比方:  
     m_iCurrentLine = 0;//初值
    每打一页,m_iCurrentLine++;
      hstMorepages = m_iCurrentLine == (lst.count - 1)
    假定lst中存的是你要打印的内容。
      

  8.   

    漫步兄,你的方法我用了 有了一点苗头 但是hstMorepages = m_iCurrentLine == (lst.count - 1)
    假定lst中存的是你要打印的内容。
    这个代码我不是太理解,能说详细点么
      

  9.   


    其实,我的demo的本意就是 lst[i] 就是第i页的所有需要打印的数据,你能把你的一页数据做成一个object吧.
    放在打印页面的事件中。 
    hasMorepages = m_iCurrentLine == (lst.count - 1)如果你还不理解,这样,你就 做个 List<string> lst ,
    每页只打印一个字符串。你就明白 整个过程了。
      

  10.   

    最大页打完时,hasmorepages设置为false.