for (int i = 0; i < richTextBox2.Lines.Length; i++)
{
richTextBox2.Lines[i] = richTextBox2.Lines[i].Insert(0, i + " ");
}
之前尝试使用Insert:
richTextBox2.Lines[i].Insert(0, i + " ");
在这两种情况下都没有添加任何数字。
例如,如果这些行是:
Hello world
Hi
Hello
然后我希望它现在是:
1 Hello world
2 Hi
3 Hello
但循环没有做任何事情,它没有添加任何数字。
答案 0 :(得分:6)
你无法以这种方式修改单行。如果您look at MSDN,您会发现此评论
默认情况下,行集合是行的只读副本 在TextBox中。要获得可写的行集合,请使用代码 类似于以下内容:textBox1.Lines = new string [] {“abcd”};
所以达到目标的正确方法是
string[] lines = richTextBox2.Lines;
for (int i = 0; i < lines.Length; i++)
{
lines[i] = (i+1) + " " + lines[i];
}
richTextBox2.Lines = lines;
答案 1 :(得分:3)
您可以尝试使用 Linq :
using System.Linq;
...
richTextBox2.Lines = richTextBox2
.Lines
.Select((line, index) => $"{index + 1} {line}")
.ToArray();
请避免重新绘制用户界面(特别是RichTextBox
),这可能会降低您的应用程序速度,但会构建数据(行,文本),然后在中进行分配。