Hallo!
Gleich vorne weg: Wünsch ich dem gesamten Forum einen guten Rutsch!
aber nun zum Problem: Ich muss Teilnehmerlisten ausdrucken lassen!
Dabei muss ich 4 Listen 4x mit geänderter Stationenbezeichnung und Punkterichter ausgeben. => Also 16 A4 Seiten!
Derzeit stehe ich vor dem Problem, dass ich das Ändern der Stationsbezeichnung in einer externen Methode vornehme (ich sehe auch keine andere Möglichkeit), dabei lasse ich eine bool-Valiable mitlaufen die bei der letzten Seite auf false stellt und damit im Print Ereigniss des printDocument die Eigenschaft
HasMorePages auf
true zu stellen!
Leider springt das Programm dann aber nochmal an den Anfang des PrintEreignisses => das die Stationsbezeichnung und Punkterichter nicht geändert werden sondern einfach nur die gleiche Liste nochmal als Seite angehängt wird!
Mein Code für das ändern des Ricters bisher:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33:
| private void button1_Click(object sender, EventArgs e) { printPreviewDialog1.Document = printDocument1; for( int counter=0;counter<ContainerClass.Groups.Count;counter++) { printGr = ContainerClass.Groups[counter]; for (int counter1 = 0; counter < ContainerClass.Judges.Count;counter1++ ) { printGr.Judge=ContainerClass.Judges[counter1]; if (counter1 + 1 == ContainerClass.Judges.Count && counter + 1 == ContainerClass.Groups.Count) { hasmorePages = false; printPreviewDialog1.ShowDialog(); } else { hasmorePages = true; printDocument1.Print() } } }
} |
und hier für das Drucken:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { e.HasMorePages = hasmorePages; } |
Meine Frage ist nur: Wie schaff ich es, dass obwohl für
HasMorePages true übergeben wird, dass das Programm printDocument1_PrintPage verlässt? Weil es ist ziemlich mühsam das Preview für 16 Druckseiten einzeln zu bestätigen... (Für den Fall das es 6 Richter und Gruppen gibt wären es 36 :S )
mfg Christoph