Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
发送到打印机时如何在c#中断开文本框中的行_C#_.net_Windows_Forms_Printing - Fatal编程技术网

发送到打印机时如何在c#中断开文本框中的行

发送到打印机时如何在c#中断开文本框中的行,c#,.net,windows,forms,printing,C#,.net,Windows,Forms,Printing,当我在文本框中输入一些文本时,我想在打印时将文本分成新行(一行7个字符) 代码如下所示 e.Graphics.DrawString(textBox24.Text, new Font("Arial", 12, FontStyle.Regular), Brushes.Black, new Point(32, 260)); 我该怎么办?按照oerkelens的建议

当我在文本框中输入一些文本时,我想在打印时将文本分成新行(一行7个字符)

代码如下所示

e.Graphics.DrawString(textBox24.Text, 
                      new Font("Arial", 12, FontStyle.Regular), 
                      Brushes.Black, 
                      new Point(32, 260));

我该怎么办?

按照oerkelens的建议,每7个字符拆分一行,然后插入Environment.NewLine

public string GetPrintReadyString(string originalString)
{
    string result = ""
    for (var i = 0; i < originalString.Length; i += 7)
      result += (originalString.Substring(i, Math.Min(7, originalString.Length - i)) + Environment.NewLine);
    return result;
}
不要忘记任何异常处理,因为字符串来自用户输入

编辑:如果您真的希望将文本框24放在一行中,请将其替换为以下文本:

string.Join("", textBox24.Text.Select((c, i) => i > 0 && i % 7 == 0 ? string.Format(Environment.NewLine + c) : c.ToString()))

你可以这样做

e.Graphics.DrawString(FormatText(textBox24.Text), 
                      new Font("Arial", 12, FontStyle.Regular), 
                      Brushes.Black, 
                      new Point(32, 260));
它使用这种方法。它循环遍历输入的字符串,在每7个字符后插入新行

public string FormatText(string input)
{
    string returnText = "";
    int charCounter = 0;
    foreach(char c in input)
    {
        result += c;
        i++;
        if(i == 7)
        {
            result += Environment.NewLine;
            charCounter=0;
        }
    }
    return returnText;
}

在每7个字符后插入一个
环境。换行符
?您能解释代码吗?哪些代码?你的密码?为什么在一行?你不需要一些异常处理吗?
public string FormatText(string input)
{
    string returnText = "";
    int charCounter = 0;
    foreach(char c in input)
    {
        result += c;
        i++;
        if(i == 7)
        {
            result += Environment.NewLine;
            charCounter=0;
        }
    }
    return returnText;
}