2

使用该richTextBox控件,如何实时更改以逗号分隔的单词的背景颜色,并用空格代替逗号?有点像 Stackoverflow 中关键字的呈现方式。

4

2 回答 2

1

在这里,当某个单词(“任何东西”)写在富文本框中时,您有一个红色的背景小代码。我希望这足以帮助您了解如何在运行时与富文本框交互。请记住,它非常简单:只有当它是您介绍的第一个词时,它才会为“任何东西”着色;如果您在其后写任何其他字符,则停止着色。

    int lastStart = 0;
    int lastEnd = 0;
    private void richTextBox1_TextChanged(object sender, EventArgs e)
    {
        richTextBox1.Select(lastStart, lastEnd + 1);

        if (richTextBox1.SelectedText.ToLower() == "anything")
        {
            richTextBox1.SelectionBackColor = Color.Red;
            lastStart = richTextBox1.SelectionStart + richTextBox1.SelectionLength;
        }
        else
        {
            richTextBox1.SelectionBackColor = Color.White;
        }

        lastEnd = richTextBox1.SelectionStart + richTextBox1.SelectionLength;
        richTextBox1.Select(lastEnd, 1);
    }
于 2013-07-01T16:22:42.293 回答
0

以下字符串:“一、二、三、四”可以转换为具有项目“一”-“二”-“三”-“四”的字符串列表,代码如下:

string FullString = "One, Two, Three, Four";
Regex rx = new Regex(", ");
List<string> ListOfStrings = new List<string>();
foreach (string newString in rx.Split(FullString))
{
     ListOfStrings.Add(newString);
}

关于颜色,您可以在这里查看: 富文本框如何突出显示文本块

为了能够实时执行此操作,我建议您对 RTB 使用 TextChanged 事件,然后您可以从那里调用一个更改颜色的函数。 http://msdn.microsoft.com/en-us/library/system.windows.forms.control.textchanged.aspx

完成后,您可以使用该String.Replace(char, char)功能删除逗号并将它们更改为空格。 http://msdn.microsoft.com/en-us/library/czx8s9ts.aspx

于 2013-07-01T16:10:33.233 回答