在文本框中的15个字符后创建新行

时间:2017-01-10 19:43:50

标签: c# winforms

我正在为比萨店创建一个POS系统。我添加了一个新文本框,以便卖家可以添加客户端的家庭住址和电话。但是当卖家打印收据时,我想在收据上为家庭住址的每15个字符添加一个新行。

例如卖家添加25个字符的地址,我希望收到的第一行显示前15个字符,然后在第二行显示剩余的10个字符。或者我们可以做其他事情,在第3个空间创建一个新线。这是在收据上打印家庭住址的代码。

offset += 20;

graphic.DrawString("Adr: ".PadRight(1) + String.Format("{0}",txtAddress.Text), font2, new SolidBrush(Color.Black), startx, starty + offset);
offset += 30;

1 个答案:

答案 0 :(得分:1)

由于某些原因,我将此作为扩展方法编写,但您明白了这一点:

   public static string Every15(this string str) {
        if(str.Length < 15)
            return str;

        StringBuilder builder = new StringBuilder();

        for(int i = 0; i < str.Length; i++) {
            var ch = str[i];

            if(i % 15 == 0 && i != 0) {
                builder.Append("\r\n");
            }
            builder.Append(ch);
        }

        return builder.ToString();
    }