更改 WinForms RichTextBox 中文本的颜色 [重复]
Posted
技术标签:
【中文标题】更改 WinForms RichTextBox 中文本的颜色 [重复]【英文标题】:Change color of text within a WinForms RichTextBox [duplicate] 【发布时间】:2011-02-01 10:21:18 【问题描述】:我有一个 RichTextBox,每次单击表单按钮时都会写入一个字符串。每个字符串都以字符串“Long”或“Short”开头,并以换行符结尾。每次我添加一个字符串时,它都会附加到 RichTextBox 的底部。如果每条线以“长”开头,我想将每条线涂成红色,如果以“短”开头,我想将其涂成蓝色。我该怎么做?
【问题讨论】:
【参考方案1】:当然,您可以使用 SelectionStart、SelectionLength 和 SelectionColor 属性来完成此操作。效果很好。
查看this page 了解这些属性的信息。
您可以通过将 SelectionStart 属性设置为当前长度来了解 RichTextBox 文本的长度并为其着色,获取要附加的字符串的长度,设置 SelectionLength,然后根据需要设置 SelectionColor .冲洗并为每个添加的字符串重复。
int length = richTextBox.TextLength; // at end of text
richTextBox.AppendText(mystring);
richTextBox.SelectionStart = length;
richTextBox.SelectionLength = mystring.Length;
richTextBox.SelectionColor = Color.Red;
类似的东西。我记得它就是这样工作的。
【讨论】:
【参考方案2】:我只是在我正在编写的程序中这样做。我正在做类似@itsmatt 的事情,但我觉得有点简单。您可以只设置Selectioncolor
并且从那时起RichTextBox
将是该颜色,直到您将其更改为其他颜色。如果您正在测试每一行,这似乎效果很好并且很容易。
if(myString == "Long")
richTextBox.SelectionColor = Color.Red;
else
richTextBox.SelectionColor = Color.Green
richTextBox.AppendText(myString);
【讨论】:
我喜欢这种方法。感觉比附加文本然后返回并使其变为不同颜色更有效,而且您无需担心选择开始/长度。 +1 因为这比公认的答案更简单、更优雅。以上是关于更改 WinForms RichTextBox 中文本的颜色 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在不选择 RichTextBox 的情况下恢复插入符号位置或更改文本颜色
C#Winforms RichTextBox。如何按rtb的大小限制字符数?
RichTextBox C# 设置插入符号位置 winforms