0

我有一个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);
    }

如果将文本插入除末尾之外的任何位置,则此代码的问题,该段落的其余部分不会保留以前的颜色。有没有办法插入不同颜色的文本,同时不干扰其余文本的格式?

4

1 回答 1

1

为什么不使用如下的 Windows 窗体的语法高亮控件?

http://scintillanet.codeplex.com/

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

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

在此处输入图像描述

于 2013-10-09T22:58:03.907 回答