Autor Beitrag
yndaso
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 108



BeitragVerfasst: Fr 21.05.10 10:22 
Hallo,
ich hoffe das ich in dieser Rubrik richtig bin.

Ich muss den Inhalt von mehreren GroupBoxen der angezeigt wird auch ausdrucken.
(Siehe Screenshot)

Nach langen googeln habe ich nun zwar eine Funktion gefunden, mit der ich den Inhalt ausdrucken
kann, aber dazu müsste ich jedes Label einzeln auslesen und positionieren.
Und das würde meinen Code sprengen:
ausblenden C#-Quelltext
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:
            string printingString;
            float xSize = 20f;
            float ySize = 20f;

            //Grafikobjekt
            
            Font tallFont = new Font("Arial"14, FontStyle.Underline);
            Font normalFont = new Font("Arial"12, FontStyle.Bold);
            Font smallFont = new Font("Arial"10, FontStyle.Regular);
            Brush br = Brushes.Black;

            //Headline
            string printingHeadline = SetupWizardCoreResource.SummaryControl_PrintingHeadline; 
            gr.DrawString(printingHeadline, tallFont, br, xSize, ySize);
            //Komponente:
            ySize += 40f;
            gr.DrawString(grBoxComponent.Text, normalFont, br, xSize, ySize);
            //Zeile 1
            ySize += 20f;
            xSize = 50f;
            printingString = lbl1MaterialNumber.Text;
            gr.DrawString(printingString, smallFont, br, xSize, ySize);
            xSize = 250f;
            printingString = ": " + lbl2MaterialNumber.Text;
            gr.DrawString(printingString, smallFont, br, xSize, ySize);


Nun habe ich einen weg gefunden, die GroupBox als Bitmap zu zeichnen und dies dann auszudrucken:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
            Graphics gr = e.Graphics;
            Bitmap bmp = new Bitmap(grBoxComponent.Width, grBoxComponent.Height, gr);
            Rectangle rect = new Rectangle(00, grBoxComponent.Width, grBoxComponent.Height);;
           grBoxComponent.DrawToBitmap(bmp, rect);
           gr.DrawImage(bmp, 1010, grBoxComponent.Width, grBoxComponent.Height);

Allerdings sind hier die Labels, die zur Programmlaufzeit geschrieben werden leer.
Aber: Zum Zeitpunkt des Druckens stehen da schon die Texte drin...
(screenshot2)

Wäre für Hilfe sehr dankbar.
Wenn es einen noch besseren Weg zum Ausdrucken der groupBox gibt, bitte mittelen

Gruß
Einloggen, um Attachments anzusehen!