c# RichTextbox添加行号

使用另一个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 { 
            }
        }

效果

相关推荐
23516几秒前
【并发编程】详解volatile
java·开发语言·jvm·分布式·后端·并发编程·原理
Algebraaaaa34 分钟前
Qt中的字符串宏 | 编译期检查和运行期检查 | Qt信号与槽connect写法
开发语言·c++·qt
Red Car34 分钟前
javascript 性能优化实例一则
开发语言·javascript·ecmascript
友友马35 分钟前
『 QT 』Hello World控件实现指南
开发语言·qt
一只学java的小汉堡1 小时前
Java 面试高频题:HashMap 与 ConcurrentHashMap 深度解析(含 JDK1.8 优化与线程安全原理)
java·开发语言·面试
huohaiyu2 小时前
Hashtable,HashMap,ConcurrentHashMap之间的区别
java·开发语言·多线程·哈希
Predestination王瀞潞6 小时前
IO操作(Num22)
开发语言·c++
宋恩淇要努力7 小时前
C++继承
开发语言·c++
沿着路走到底8 小时前
python 基础
开发语言·python
沐知全栈开发9 小时前
C# 委托(Delegate)
开发语言