发送到打印机时如何在c#中断开文本框中的行
当我在文本框中输入一些文本时,我想在打印时将文本分成新行(一行7个字符) 代码如下所示发送到打印机时如何在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的建议
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;
}