我目前正在使用WinForms在C#中使用一个工具。 - 它正在读取和修改.txt文件,我想结合我们在IDE中看到的一个基本功能:颜色编码。
我正在处理的.txt文件中有一些关键字和短语,这些关键字和短语对于用户轻松阅读内容非常有用。
到目前为止,我发现了一篇关于使用RichTextBox并在当时定义一个选择的帖子,然后给出了不同的颜色。当我想继续评估和着色内容时,这对我来说似乎超级低效,并且出于某种原因我部分原因告诉我这是丑陋的代码。
richTextBox1.SelectionFont = new Font("Verdana", 12, FontStyle.Bold);
richTextBox1.SelectionColor = Color.Red;
我原本希望以一种方式对文本进行编码(如html),以便在将文本提供给文本框之前对其特定部分进行着色,然后在可编辑字段中正确呈现文本框。但似乎这不是一个真正的选择。
做这样的事情的最佳做法是什么?多颜色编码的可编辑文本字段。我错过了什么吗?是否有“漂亮”的方式来做到这一点?
我希望我所要求的是有道理的,我没有做过很多UI编程。谢谢你的帮助。
答案 0 :(得分:2)
您现在正在做的事情不如修改RTF文本并使用richTextBox1.Rtf = yourModifiedTextString设置它时效率高;
实现这一目标的步骤:
从strFileText变量
使用richTextBox1.Text = strFileText;
使用string strRichText = richTextBox1.Rtf;
使用您的颜色strRichText = strRichText.Replace("int", "\cf2 int \cf1"); // to show int in second colour in colour table and then set the colour for next text back to default colour (colour 1)
将Rtf文本设置为richTextBox1.Rtf = strRichText;
我希望这会让你了解你的要求。
有关如何向RTF添加字体和颜色的更多详细信息,请阅读