C# 将彩色文本插入RichTextBox

C# 将彩色文本插入RichTextBox,c#,winforms,formatting,richtextbox,C#,Winforms,Formatting,Richtextbox,我有一个丰富的文本框,用户可以从列表中选择关键字,它们将以不同的颜色插入。用户还可以输入自己的文本。该程序将用于构建SQL代码段 例如,用户输入的文本将为黑色,该列表中的关键字将为蓝色 我见过几个附加不同颜色单词的例子,但没有插入不同颜色单词的例子 下面是我尝试过的 public void InsertText(Color color, string text) { var startposition = _richTextBox.SelectionSta

我有一个
丰富的文本框
,用户可以从列表中选择关键字,它们将以不同的颜色插入。用户还可以输入自己的文本。该程序将用于构建SQL代码段

例如,用户输入的文本将为黑色,该列表中的关键字将为蓝色

我见过几个附加不同颜色单词的例子,但没有插入不同颜色单词的例子

下面是我尝试过的

        public void InsertText(Color color, string text)
    {
        var startposition = _richTextBox.SelectionStart;
        var endposition = startposition + text.Length;

        _richTextBox.Text = _richTextBox.Text.Insert(startposition, text);
        _richTextBox.Select(startposition, endposition - startposition);
        _richTextBox.SelectionColor = color;
        _richTextBox.Select(endposition, 0);
    }

此代码的问题是,如果文本插入到除末尾以外的任何位置,则段落的其余部分不会保留以前的颜色。有没有一种方法可以插入不同颜色的文本,同时又不干扰其余文本的格式设置?

为什么不为Windows窗体(如以下窗体)使用语法高亮显示控件

第一篇文章支持SQL,我用了比写这篇文章更少的时间,用他们的演示应用程序得到了以下结果:


你看过这篇文章了吗?
endposition-startposition
代替
text.Length
的神奇之处是什么?我认为你的代码不好,但它不应该导致你提到的这样一个问题,也许它涉及到其他地方的一些代码。