Autor Beitrag
tomycat
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 265
Erhaltene Danke: 1



BeitragVerfasst: Do 03.11.16 20:56 
hallo,
ich habe untereinander mehere regionen, es ändert sich immer Höheb durch eine Schleife.
Soblad ich drucke steht der Text 123456 linksbündig auf dem Papier, gibt es ein Trick, dass es rechtsbündig ist.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
 #region             
                rt.X = 480;
                rt.Y = 222 + Höheb;
                rt.Height = 18;
                rt.Width = 70;

                if (hinterg == 0)
                    e.Graphics.FillRectangle(Brushes.DarkGray, rt); // füllt Hintergrund
                if (headerx == 0)
                {
                    Font dxqi = new Font("Microsoft San Serif"10);
                    if (auslesen[22] == "1")
                    {
                        e.Graphics.DrawRectangle(pv, rt);   //Zeichnet ein Rechteck       
                    }       
                    e.Graphics.DrawString("123456", dxqi, Brushes.Black, rt);
                }


Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Do 03.11.16 21:05 
Stichwort: StringFormat.Alignment-Eigenschaft

Für diesen Beitrag haben gedankt: tomycat
tomycat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 265
Erhaltene Danke: 1



BeitragVerfasst: Do 03.11.16 21:59 
danke für den link, steige aber nicht ganz durch, über Google habe ich folgendes gefunden:
social.msdn.microsof...um=dotnetframeworkde

Die beschreiben genau das Problem:
Jetzt habe ich folgendes geändert:
ausblenden C#-Quelltext
1:
2:
3:
                  float rightMargin = e.MarginBounds.Left + 100;
               
                    e.Graphics.DrawString("123456", dxqi, Brushes.Black, rightMargin, rt);


Aber jetzt ist rt Rot unterstriechen."CAn not convert form System.Drawing.Rectangle to float
Wenn ich 90 nehme, dann ist VS zufrieden. Aber die haben eine fixe Position (breite/länge)auf dem Papier.


Zuletzt bearbeitet von tomycat am Do 03.11.16 22:23, insgesamt 1-mal bearbeitet
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 03.11.16 22:15 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: tomycat
tomycat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 265
Erhaltene Danke: 1



BeitragVerfasst: Do 03.11.16 22:22 
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
   ////rechts bü
            StringFormat format1 = new StringFormat(StringFormatFlags.NoClip);
            StringFormat format2 = new StringFormat(format1);
            format1.LineAlignment = StringAlignment.Near;
            format1.Alignment = StringAlignment.Far;
            format2.LineAlignment = StringAlignment.Center;
            format2.Alignment = StringAlignment.Far;
            format2.Alignment = StringAlignment.Far;

            ////// rechts bü


     e.Graphics.DrawString(spalte_d_auf[x - 1], dxqii, Brushes.Black, (RectangleF)rt, format1);


Das wäre jetzt meine Lösung gewesen, aber deine Lösung ist besser.