突出显示richtextbox中的特定文本

我有一个窗口表单,其中包含一个listbox和一些richtextboxexlistbox包含一些值。 当我从listbox选择任何值时, richtextboxex根据所选值与数据绑定。

当我从列表框中选择一个值时,我必须突出显示绑定到richtextbox一些文本,例如:

只是一个友好的提醒,你有<>逾期发票,逾期余额为<>。 如果您对欠款有任何疑问,请致电我们,我们将很乐意与您讨论。 如果您已经付款,请忽略此提醒。

所有数据都来自数据库。

我想突出显示<><>这些词。

像这样的东西应该工作(只是测试这..似乎工作正常):

 int openBrace = richTextBox.Text.IndexOf("<"); while (openBrace > -1) { int endBrace = richTextBox.Text.IndexOf(">", openBrace); if (endBrace > -1) { richTextBox.SelectionStart = openBrace; richTextBox.SelectionLength = endBrace - openBrace; richTextBox.SelectionColor = Color.Blue; } openBrace = richTextBox.Text.IndexOf("<", openBrace + 1); } 

在不转换为具有所需function的新对象的情况下执行此操作的一种方法是覆盖ListBox DrawItem

 void listBox1_DrawItem(object sender, DrawItemEventArgs e) { var item = listBox1.Items[e.Index] as ; e.DrawBackground(); if (item.fIsTemplate) { e.Graphics.DrawString(item.Text + "(Default)", new Font("Microsoft Sans Serif", 8, FontStyle.Regular), Brushes.Black, e.Bounds); } else { e.Graphics.DrawString(item.Text, new Font("Microsoft Sans Serif", 8, FontStyle.Regular), Brushes.Black, e.Bounds); } e.DrawFocusRectangle(); } 

并在构造函数中添加它(在InitializeComponent();调用)

 listBox1.DrawMode = DrawMode.OwnerDrawFixed; listBox1.DrawItem += new DrawItemEventHandler(listBox1_DrawItem);