使用另一个RichTextBox放在要添加行号的左边
使用以下代码
csharp
//uiRichTextBox1为右侧文本框,uiRichTextBox2为左侧文本框
int lineIndex = 0;
private void uiRichTextBox1_TextChanged(object sender, EventArgs e)
{
if (lineIndex > uiRichTextBox1.Lines.Length)
{
List<string> temp = new List<string>();
temp.AddRange(uiRichTextBox2.Text.Split('\n'));
int count = lineIndex - uiRichTextBox1.Lines.Length;
if (temp.Count - count - 1 > 0)
{
temp.RemoveRange(temp.Count - count - 1, count);
}
else {
temp.Clear();
}
uiRichTextBox2.Text = String.Join("\n",temp);
lineIndex = uiRichTextBox1.Lines.Length;
}
else if(lineIndex < uiRichTextBox1.Lines.Length)
{
uiRichTextBox2.Text += (uiRichTextBox1.Lines.Length-1) + "\r\n";
lineIndex = uiRichTextBox1.Lines.Length;
}
else {
}
}
效果