Ale*_*lek 4 c# string textbox word-wrap
这是我第一次在这个惊人的服务上发布问题,因为今天它只是通过阅读它帮助了我很多.
目前,我正在制作小型C#应用程序,我需要使用大量的TextBox.在TextBox属性中,我检查了MultiLine和Word-Wrap函数.因此,当用户输入文本时,它会以多行显示.
我的问题是如何在字符串列表中显示那些显示在表单上的行,而不是一个大字符串.
我尚未区分天气Word-Wrap函数创建新行或在每行末尾添加"\n\r".我试图从TextBox.Lines获取行,但它只有TextBox.Lines [0],它包含整个字符串形式TextBox
我已经尝试了很多东西并研究了很多资源,但我仍然没有找到解决这个问题的正确方法.
这里有很多角落案例.您想要使用的核心方法是TextBox.GetFirstCharIndexFromLine(),允许您在TextBox应用WordWrap属性后迭代行.Boilerplate代码:
var lines = new List<string>();
for (int line = 0; ;line++) {
var start = textBox1.GetFirstCharIndexFromLine(line);
if (start < 0) break;
var end = textBox1.GetFirstCharIndexFromLine(line + 1);
if (end == -1 || start == end) end = textBox1.Text.Length;
lines.Add(textBox1.Text.Substring(start, end - start));
}
// Do something with lines
//...
Run Code Online (Sandbox Code Playgroud)
要注意的是行结束包括在线.