WinForms中多色文本框的最佳实践?

时间:2014-05-08 17:42:11

标签: c# winforms

我目前正在使用WinForms在C#中使用一个工具。 - 它正在读取和修改.txt文件,我想结合我们在IDE中看到的一个基本功能:颜色编码。

我正在处理的.txt文件中有一些关键字和短语,这些关键字和短语对于用户轻松阅读内容非常有用。

到目前为止,我发现了一篇关于使用RichTextBox并在当时定义一个选择的帖子,然后给出了不同的颜色。当我想继续评估和着色内容时,这对我来说似乎超级低效,并且出于某种原因我部分原因告诉我这是丑陋的代码。

richTextBox1.SelectionFont = new Font("Verdana", 12, FontStyle.Bold);
richTextBox1.SelectionColor = Color.Red;

我原本希望以一种方式对文本进行编码(如html),以便在将文本提供给文本框之前对其特定部分进行着色,然后在可编辑字段中正确呈现文本框。但似乎这不是一个真正的选择。

做这样的事情的最佳做法是什么?多颜色编码的可编辑文本字段。我错过了什么吗?是否有“漂亮”的方式来做到这一点?

我希望我所要求的是有道理的,我没有做过很多UI编程。谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

您现在正在做的事情不如修改RTF文本并使用richTextBox1.Rtf = yourModifiedTextString设置它时效率高;

实现这一目标的步骤:

  1. 从strFileText变量

  2. 中的文件中读取文本
  3. 使用richTextBox1.Text = strFileText;

  4. 将该文本设置为richTextBox
  5. 使用string strRichText = richTextBox1.Rtf;

  6. 阅读由此生成的富文本(rtf文本)
  7. 使用您的颜色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)

  8. 的富文本格式替换文字中的关键字
  9. 将Rtf文本设置为richTextBox1.Rtf = strRichText;

  10. 我希望这会让你了解你的要求。

    有关如何向RTF添加字体和颜色的更多详细信息,请阅读