我如何创建一个;行号带“;到C#中的RichTextBox?

我如何创建一个;行号带“;到C#中的RichTextBox?,c#,visual-studio,winforms,C#,Visual Studio,Winforms,假设我有一个简单的RichTextBox,有3行 每行写“行”,然后写行号 我真正想做的是在RichTextBox的左边做一个条带,我输入的每一行都会弹出一个新标签,显示新的行号,直到它到达底部 下面是我想要达到的目标:。这是为了我正在做的一个机器人探索 并且没有用户控件正如有人向我建议的那样,我通过使用FastColoredTextBox解决了我的问题 使用FastColoredTextBox或闪烁器–Alexander Petrov 结果是这样的: 没有现成的方法可以做到这一点,您最好只获取

假设我有一个简单的RichTextBox,有3行

每行写“行”,然后写行号

我真正想做的是在RichTextBox的左边做一个条带,我输入的每一行都会弹出一个新标签,显示新的行号,直到它到达底部

下面是我想要达到的目标:。这是为了我正在做的一个机器人探索


并且没有用户控件

正如有人向我建议的那样,我通过使用FastColoredTextBox解决了我的问题

使用FastColoredTextBox或闪烁器–Alexander Petrov

结果是这样的:

没有现成的方法可以做到这一点,您最好只获取一个为此而构建的组件。您必须创建一个自定义控件,这在WPF中可能会更容易。然而,如何做到这一点对于StackOverflow来说是一个太宽泛的主题,加上已经有了可以做到这一点的自定义控件;只需使用其中一个。这里有一个快速的方法:在RTB的侧面添加一个标签。将其设置为非自动大小,清除文本并将其添加到绘制事件:
private void st_lines_Paint(对象发送方,PaintEventArgs e){RichTextBox rtb=richTextBox1;for(int l=0;l
。在RTB.TextChanges事件中写入
st_lines.Invalidate()-根据需要进行优化。完成..您还应该添加一个
st_lines.Invalidate()
richTextBox1\u VScroll
事件!-这将适用于自由格式的文本。所以根本不需要外部控制如果你让它工作,请随意添加结果作为答案!它不起作用!