Bonjour,

J'ai quelques problèmes pour comprendre le fonctionnement de HasMorePage de PrintPageEventArgs. En effet :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
public PrintDocument pd = new PrintDocument();
 
   private void button_Click(object sender, EventArgs ev)
        {
            pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);
            pd.Print();
        }
suivi de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
   private void pd_PrintPage(object sender, PrintPageEventArgs ev)
        {       
                Font font = new Font("Tahoma", 10, FontStyle.Bold, GraphicsUnit.Point);
                Brush brush = new SolidBrush(Color.Black);
                ev.Graphics.DrawString("test ", font, brush, ev.MarginBounds.Left, ev.MarginBounds.Top);
                ev.HasMorePages = true;          
        }
imprime des pages en suivant toutes comprenant "test". Ce qui parait logique.

alors que suivi de

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
   private void pd_PrintPage(object sender, PrintPageEventArgs ev)
        {
            for (int i = 0; i < 10; i++)
            {
                Font font = new Font("Tahoma", 10, FontStyle.Bold, GraphicsUnit.Point);
                Brush brush = new SolidBrush(Color.Black);
                ev.Graphics.DrawString("test "+i, font, brush, ev.MarginBounds.Left, ev.MarginBounds.Top);
                ev.HasMorePages = true;
            }
            ev.HasMorePages = false;
        }
Imprime une unique page sur laquelle le caractère i est illisible car écrasé à chaque "nouvelle page".

Sauriez vous comment faire pour afficher 10 pages comprenant
  • "test 1" pour la premiere
  • "test 2" pour la deuxième
  • ...
  • "test 9" pour la dernière

?

Je vous remercie pour votre aide.