Autor Beitrag
deramonis
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Do 08.07.10 19:34 
Hallo liebe C# Community,

ich bin 20 Jahre alt und studiere Software-Enigneering im 2. Semester. Seit ein paar Wochen haben wir auch C#.
zur Zeit arbeite ich an an einem kleinem Programm, welches einem Fussballtrainer seiner "Arbeit" erleichtern soll. Man kann Spieler hinzufügen, bearbeiten und vor allem diese auch auf einem Spielfeld (bei mir pictureBox) als Label verschieben und so eine Aufstellung zusammenstellen (siehe Anhang "Austellung").
Als weitere Funktion natürlich der Druck der Aufstellung. Hier mein Problem:
Sobald ich die pictureBox samt Label drucken will verschieben sich die labels leicht nach unten und ein wenig nach rechts (siehe Anhang "Druck").
Leider habe ich keine Ahnung warum das passiert.
Lediglich aufgefallen ist mir, dass dies nur passiert wenn ich den labels die pictureBox als parent zuweise, was ich mache damit diese mitgedruckt werden.
Hier mal der Code zum Drucken:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            Bitmap b = new Bitmap(pictureBox1.Width, pictureBox1.Height);

            label1.Parent = pictureBox1;
            .....
            label11.Parent = pictureBox1;
            pictureBox1.DrawToBitmap(b, e.PageBounds);

            e.Graphics.DrawImage(b, new Point(1520));
        }

        private void button1_Click(object sender, EventArgs e)
        {
            printDocument1.Print();
        }


Würde mich freuen, wenn einer ne Idee hat

MfG


Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Do 08.07.2010 um 20:53
Einloggen, um Attachments anzusehen!
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 08.07.10 19:52 
Hallo und :welcome:!

Du musst die Positionen der Labels anpassen, weil die ja dann relativ zum Rahmen der PictureBox und nicht mehr der Form gemessen werden:
ausblenden C#-Quelltext
1:
2:
3:
            label1.Parent = pictureBox1;
            label1.Left -= pictureBox1.Left;
            label1.Top -= pictureBox1.Top;


Viele Grüße,
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".

Für diesen Beitrag haben gedankt: deramonis
deramonis Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Fr 09.07.10 07:00 
Hey Christian,

Vielen Dank für die schnelle Hilfe.
Funktioniert einwandfrei.

MfG