Probleme mit mehrseitigem Druck
-
Hallo,
versuche aktuell etwas zu drucken, was auf mehrere Seiten verteilt werden muss.Font normalFont = new Font("Arial", 10, FontStyle.Regular); Font headerFont = new Font("Arial", 14, FontStyle.Bold); string body = ""; for (int i = 0; i < dataGridView2.RowCount; ++i) { body = "Überschrift" + (i + 1); e.Graphics.DrawString(body, headerFont, Brushes.Black, 10,(110*i) + 50); body = "\n"; body += "Sub1: " + dataGridView2[1, i].Value.ToString(); body += " " + dataGridView2[0, i].Value.ToString() + "\n"; body += "Sub2: " + dataGridView2[2, i].Value.ToString() + "m\n"; body += "Sub3: " + dataGridView2[3, i].Value.ToString() + "\n"; body += "Sub4: " + dataGridView2[9, i].Value.ToString() + "€"; e.Graphics.DrawString(body, normalFont, Brushes.Black, 10, (110 * i) + 51); if (i % 9 == 0 && i != 0) { e.HasMorePages = true; } if (dataGridView2.RowCount - 1 == i) { e.HasMorePages = false; } }
Ich will also immer ne Überschrift Fett drucken und dann jeweils ein paar subitems dazu in normaler Schrift. Jedes 9te Element solle eine neue Seite generiert werden. Allerdings geht das nicht. Er druckt immer genau eine Seite. Lasse ich das
e.HasMorePages = false;
weg versucht er unendlichviele Seiten zu drucken.
Hat jemand ne Idee wo das Problem liegen könnte?
-
i zum Attribut machen.
Die Schleife gehe nur über eine Seite.int dingeAufDieserSeite=0; while( i < dataGridView2.RowCount){ if(dingeAufDieserSeite==9){//paßt nix mehr e.hasMorePages=true; return!; } e.Graphics.MaleRum ++i; ++dingeAufDieserSeite; }
-
volkard schrieb:
i zum Attribut machen.
Die Schleife gehe nur über eine Seite.int dingeAufDieserSeite=0; while( i < dataGridView2.RowCount){ if(dingeAufDieserSeite==9){//paßt nix mehr e.hasMorePages=true; return!; } e.Graphics.MaleRum ++i; ++dingeAufDieserSeite; }
Hm eigentlich logisch.
Danke klappt jetzt