[英]How can i add numbers near each line in index 0 in richTextBox?
for (int i = 0; i < richTextBox2.Lines.Length; i++)
{
richTextBox2.Lines[i] = richTextBox2.Lines[i].Insert(0, i + " ");
}
在嘗試插入之前:
richTextBox2.Lines[i].Insert(0, i + " ");
在這兩種情況下,都不會加任何數字。
例如,如果這些行是:
Hello world
Hi
Hello
然后我希望它現在是:
1 Hello world
2 Hi
3 Hello
但是循環不會執行任何操作,因為它不會添加任何數字。
您不能以這種方式修改單行。 如果您查看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;
您可以嘗試使用Linq :
using System.Linq;
...
richTextBox2.Lines = richTextBox2
.Lines
.Select((line, index) => $"{index + 1} {line}")
.ToArray();
請避免重繪UI (尤其是RichTextBox
),這可能會降低您的應用程序的速度,但會生成數據(行,文本),然后一次性分配它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.