1

列に収まるように、これらの数値を 2 行に折り返したいと思います。現在描いている

e.Graphics.DrawString(
        ViewA.Rows[sn].Cells["itemcode"].Value.ToString(), 
        font, 
        Brushes.Black, 
        new PointF(e.MarginBounds.Left, un));

これらの文字列を 10.char から折り返すことはできますstring.length > 10か? 例: 33435356985968 になります

                                            3343535698
                                                  5968

ここに画像の説明を入力

編集:コードをこれに変更します。Henk Holterman のおかげで、rectangleF を使用しています。これを改善するものはありますか?

                       string texts;
                      string measureString = "123456";
                       Font stringFont = new Font("Arial", 18);
                      SizeF stringSize = new SizeF();
                      stringSize = e.Graphics.MeasureString(measureString, stringFont);

           for (; sinirr <ViewA.RowCount ; sinirr++)

                   {
                 if (ustsin + yuk > e.MarginBounds.Bottom)
                   {
                e.HasMorePages = true;
                return;
                    }             
              if (ViewA.Rows[sinirr].Cells["itemcode"].Value.ToString().Length > 10)
                 {                                    
                texts = ViewA.Rows[sinirr].Cells["itemcode"].Value.ToString();
                graphics.DrawString(texts, font, Brushes.Black, new RectangleF(new PointF(e.MarginBounds.Left, ustsin),stringSize));
                ustsin += 2* yuk;
                  }
4

0 に答える 0