带有自定义换行的多行文本框

本文关键字:文本 自定义 换行 | 更新日期: 2023-09-27 18:08:56

我开始用。net和c#编程,目前我被卡住了。我有一个非常类似的问题,张贴在这个问题在stackoverflow: c#:多行文本框与文本框。自动换行显示长Base64字符串

对这个问题的回答是这段代码:

public IEnumerable<string> SimpleWrap(string line, int length) 
{ 
   var s = line; 
   while (s.Length > length) 
   { 
     var result = s.Substring(0, length); 
     s = s.Substring(length); 
     yield return result; 
   } 
   yield return s; 
} 

我不知道如何使用那段代码。有人可以为我提供一个代码片段,使用这种特定的方法来编写文本,自动也插入一个新的行。我的代码现在看起来像这样:

var length = GetMaximumCharacters(txtBxResults);
var txtWrap = SimpleWrap(stringValue, length);
foreach (string s in txtWrap)
{
    txtBxResults.AppendText(s);
}

如果我使用AppendText方法,它会简单地将所有文本写在一行中,这是我不想要的。如有任何回复,将不胜感激。

谢谢,KK

带有自定义换行的多行文本框

你几乎是正确的,你只需要插入换行符。试着

foreach (string s in txtWrap)
{
  txtBxResults.AppendText(s + Environment.NewLine);
}

我现在不能给你确切的代码(我稍后会回来贴出来),但一般来说,你应该做的是确定下一个逗号的索引,如果当前行的字符+该索引>行长度,然后在该复合之前添加新行。如果你在一个圆圈中这样做,当它完成后应该正确格式化,也要考虑到最后一个复合词不会(我认为)在末尾有逗号。