使用该richTextBox
控件,如何实时更改以逗号分隔的单词的背景颜色,并用空格代替逗号?有点像 Stackoverflow 中关键字的呈现方式。
问问题
2770 次
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 回答