将彩色文本插入RichTextBox

时间:2013-10-09 22:34:52

标签: c# winforms formatting richtextbox

我有一个rich textbox,用户可以从列表中选择关键字,它们将以不同的颜色插入。用户还可以输入自己的文本。该程序将用于构建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);
    }

此代码的问题如果文本被插入除最后的任何地方,则段落的其余部分不会保留以前的颜色。有没有办法插入不同颜色的文本,同时不干扰文本其余部分的格式化?

1 个答案:

答案 0 :(得分:1)

为什么不使用Windows Forms的语法高亮控件,如下所示?

http://scintillanet.codeplex.com/

https://code.google.com/p/alsing/wiki/SyntaxBox

第一个有SQL支持,花了我更少的时间而不是写这篇文章来使用他们的演示应用获得以下结果:

enter image description here