C# NET中富文本框中的彩色文本
我有丰富的文本框来编辑XML文本 我想要的是如何为RichTextBox中的XML标记名称着色C# NET中富文本框中的彩色文本,c#,.net,vb.net,C#,.net,Vb.net,我有丰富的文本框来编辑XML文本 我想要的是如何为RichTextBox中的XML标记名称着色 我想要红色或绿色的标签名称。 有什么办法吗?MSDN创建了一个简单的C函数,用于格式化RichTextBox中的文本内容: Check out,一个很好的Windows源代码编辑组件,也支持语法高亮显示。它有一个.NET包装,名为。使用一个简单的正则表达式查找每个标记的位置(开始和结束),并将其着色,如下所示: richtextbox1.Select(start, end-start); richt
我想要红色或绿色的标签名称。
有什么办法吗?MSDN创建了一个简单的C函数,用于格式化RichTextBox中的文本内容:
Check out,一个很好的Windows源代码编辑组件,也支持语法高亮显示。它有一个.NET包装,名为。使用一个简单的正则表达式查找每个标记的位置(开始和结束),并将其着色,如下所示:
richtextbox1.Select(start, end-start);
richtextbox1.SelectionColor = Color.Green;
richtextbox1.Select(start, 0);
有些文章解释或建议语法着色的可能方法,例如:
我认为最好、最简单的方法就是使用它,这样你就可以专注于对你真正重要的事情,而不是重新发明轮子:)找出你想要的正则表达式在使用什么。一旦有了它,您就可以使用类似以下的方法来更新
RichTextBox
public static void HighlightSyntax(RichTextBox richTextBox, Regex yourRegex, Color someColor)
{
richTextBox.BeginUpdate();
int selPos = richTextBox.SelectionStart;
richTextBox.SelectAll();
richTextBox.SelectionColor = normTextColor;
richTextBox.Select(selPos, 0);
// For each match from the regex, highlight the word.
foreach (Match keyWordMatch in yourRegex.Matches(richTextBox.Text))
{
richTextBox.Select(keyWordMatch.Index, keyWordMatch.Length);
richTextBox.SelectionColor = someColor;
richTextBox.Select(selPos, 0);
richTextBox.SelectionColor = normTextColor;
}
richTextBox.EndUpdate();
}
您还可以采用计时器在设定的时间后自动更新
我希望这有帮助
注意。对于大型文本文件,这样的方法会很慢!在这种情况下,我将采用Sinctilla.NET作为完整的语法高亮显示工具,如下面的一个答案所述…我认为对于小的语法高亮显示项目,请自己动手!在已经发布的语法编辑器中有一些突出显示的示例 对于需要更好突出显示的大型项目,请使用斯金塞拉.NET(但请注意,它有点重,而且可能很难开始工作!) 对于企业项目,请使用商业产品,如actipro语法编辑器
您的意思是想要一个处理XML格式文档的语法编辑器吗?