簡體   English   中英

如何在richTextBox的索引0中的每一行附近添加數字?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM