【发布时间】:2016-06-19 10:24:53
【问题描述】:
所以我想使用Text.Replace 函数将非彩色文本替换为彩色文本,但非彩色文本必须是特定单词。
例如。
private void timer1_Tick(object sender, EventArgs e)
{
int index = 0;
while(index < richTextBox1.Text.LastIndexOf(textBox1.Text))
{
richTextBox1.Find("if");
richTextBox1.Text.Replace("if", Text.Color.DarkGreen "if");
}
}
}
【问题讨论】:
-
您是否正在尝试实现语法高亮?那里有支持它的控件。为此使用普通的 RichTextBox 真的很痛苦。
-
@SriramSakthivel 是的,我正在尝试实现语法高亮,但并非全部都是语法
-
请记住,替换函数返回新字符串。
-
我建议您使用任何支持语法高亮的第三方文本框。它们中的大多数使用定义语法突出显示的 xml 文件提供自定义突出显示。其中之一是here 在您最喜欢的搜索引擎中使用关键字“C# Syntax Highlighting Wpf/Winforms/Asp.net”搜索,无论您使用哪种技术
-
你的目标是什么:Winforms? WPF? ASP? ...?? 总是相应地标记您的问题! - Winforms:这行不通。不仅您不使用 Replace 错误,您也 永远不必更改 RichTextBox 的 Text 属性,否则您会弄乱所有以前的格式。相反,您需要选择一部分,然后更改 SelectedColor!!!