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
的神奇之处是什么?我认为你的代码不好,但它不应该导致你提到的这样一个问题,也许它涉及到其他地方的一些代码。