Take a look here:
Printing and Previewing multiple pages in C#[
^]. It may help you to understand where you've made a mistake.
The most important thing is that you have to define the number of items per page. In case when the numer of items per page will achieve desired value, you have to reset that variable, set
e.HasMorePage
to
true
and use
return
keyword to call page print event again. See:
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
float currentY = 10;
e.Graphics.DrawString("Print in Multiple Pages", DefaultFont, Brushes.Black, 10, currentY);
currentY += 15;
while(totalnumber <= 50)
{
e.Graphics.DrawString(totalnumber.ToString(),DefaultFont, Brushes.Black, 50,currentY);
currentY += 20;
totalnumber += 1;
if(itemperpage < 20)
{
itemperpage += 1;
e.HasMorePages = false;
}
else
{
itemperpage = 0;
e.HasMorePages = true;
return;
}
}
}