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

本文关键字:最佳 文本 WinForms | 更新日期: 2023-09-27 18:02:30

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

我正在处理的。txt文件中有一些关键字和短语,为了让用户更容易地阅读内容,这些关键词和短语将非常有用。

到目前为止,我发现了一个关于使用RichTextBox和定义一个选择的帖子,然后你给一个不同的颜色。当我想继续对内容进行评估和着色时,这对我来说似乎超级低效,而且出于某种原因,我的一部分告诉我这是丑陋的代码。
richTextBox1.SelectionFont = new Font("Verdana", 12, FontStyle.Bold);
richTextBox1.SelectionColor = Color.Red;

我最初希望有一种方法来编码文本的方式(如html),以便在将其输入文本框之前为其特定部分上色,然后在可编辑的字段中正确呈现它。但这似乎不是一个真正的选择。

做这样的事情的最佳实践是什么?多色编码可编辑的文本字段。我错过什么了吗?有没有一种"漂亮"的方式来做到这一点?

我希望我问的是有意义的,我没有做过很多UI编程。谢谢你的帮助。

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

当你修改RTF文本并使用richTextBox1.Rtf = yourModifiedTextString;

实现步骤:

  1. 从strFileText变量中读取文本

  2. 使用richTextBox1.Text = strFileText;

  3. 将该文本设置为richTextBox
  4. 读取string strRichText = richTextBox1.Rtf;生成的富文本(rtf文本)

  5. 将文本中的关键字替换为您的颜色的富文本格式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)

  6. 设置Rtf文本为richTextBox1.Rtf = strRichText;

我希望这能给你一个你所要求的想法。

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

  • RTF Basic (Simple Tutorial)
  • RTF v1.5规格(详细)
  • RTF v1.6规格