我怎样才能在红色每当我满足RichTextBox的字母“A”的时间画画吗?选择性着色文本RichTextBox中
6
A
回答
26
试试这个:
static void HighlightPhrase(RichTextBox box, string phrase, Color color) {
int pos = box.SelectionStart;
string s = box.Text;
for (int ix = 0; ;) {
int jx = s.IndexOf(phrase, ix, StringComparison.CurrentCultureIgnoreCase);
if (jx < 0) break;
box.SelectionStart = jx;
box.SelectionLength = phrase.Length;
box.SelectionColor = color;
ix = jx + 1;
}
box.SelectionStart = pos;
box.SelectionLength = 0;
}
...
private void button1_Click(object sender, EventArgs e) {
richTextBox1.Text = "Aardvarks are strange animals";
HighlightPhrase(richTextBox1, "a", Color.Red);
}
1
,而你是打字,如果这是你在找什么这不会工作,但我用这个来突出子:
Function Highlight(ByVal Search_Str As Object, ByVal InputTxt As String, ByVal StartTag As String, ByVal EndTag As String) As String
Highlight = Regex.Replace(InputTxt, "(" & Regex.Escape(Search_Str) & ")", StartTag & "$1" & EndTag, RegexOptions.IgnoreCase)
End Function
,并调用它是这样的:
Highlight("A", "Color All my A's red", [span class=highlight]', '[/span]')
其中班级'突出'具有任何颜色编码/格式你想要的:
.highlight {text-decoration: none;color:black;background:red;}
顺便说一句:你需要改变th OSE方括号弯角的...他们不会来了直通当我键入他们...
+0
感谢对帮助,但你有没有C#代码? – Gold 2009-01-18 19:32:38
1
这是C#为EJ布伦南的答案代码:
public string Highlight(object Search_Str, string InputTxt, string StartTag, string EndTag)
{
return Regex.Replace(InputTxt, "(" + Regex.Escape(Search_Str) + ")", StartTag + "$1" + EndTag, RegexOptions.IgnoreCase);
}
2
这里是一个片段从我的包装类的做这个工作:
private delegate void AddMessageCallback(string message, Color color);
public void AddMessage(string message)
{
Color color = Color.Empty;
string searchedString = message.ToLowerInvariant();
if (searchedString.Contains("failed")
|| searchedString.Contains("error")
|| searchedString.Contains("warning"))
{
color = Color.Red;
}
else if (searchedString.Contains("success"))
{
color = Color.Green;
}
AddMessage(message, color);
}
public void AddMessage(string message, Color color)
{
if (_richTextBox.InvokeRequired)
{
AddMessageCallback cb = new AddMessageCallback(AddMessageInternal);
_richTextBox.BeginInvoke(cb, message, color);
}
else
{
AddMessageInternal(message, color);
}
}
private void AddMessageInternal(string message, Color color)
{
string formattedMessage = String.Format("{0:G} {1}{2}", DateTime.Now, message, Environment.NewLine);
if (color != Color.Empty)
{
_richTextBox.SelectionColor = color;
}
_richTextBox.SelectedText = formattedMessage;
_richTextBox.SelectionStart = _richTextBox.Text.Length;
_richTextBox.ScrollToCaret();
}
现在您可以使用AddMessage("The command failed")
来调用它,以红色自动突出显示。或者你可以用AddMessage("Just a special message", Color.Purple)
调用它来定义一个特殊的颜色(catch块内有用例如定义一个特定的颜色,无论邮件内容)
+0
感谢奥利弗,你的代码帮我! – Maro 2014-03-03 14:38:07
相关问题
- 1. 如何从RichTextBox中选择文本然后着色?
- 2. 在RichtextBox,C中着色文本#
- 3. 在richTextBox中着色部分文本
- 4. RichTextBox颜色选择行
- 5. C#RichTextBox中选择指定的文本
- 6. richtextbox选择颜色和选择backcolor属性
- 7. 着色checkboxGroupInput选择
- 8. RichTextBox闪烁着色字
- 9. C#WindowsForms RichTextBox在大文本中选择文本格式
- 10. 在C中richtextbox行的着色backgorund#
- 11. 为什么当尝试在richTextBox中对多个文本部分进行着色时,它根本不着色?
- 12. RichTextBox的文本颜色
- 13. 如何才能将richTextBox特定文本以黄色和红色一次着色?
- 14. 选择着色算法
- 15. 在java中着色文本
- 16. 在C#中着色文本#
- 17. 着色文本中的WinForms
- 18. 更改WinForms RichTextBox中文本的颜色
- 19. C#RichTextBox控件中文本的背色
- 20. 在VB中选择性递归组件重新着色
- 21. 以编程方式选择WPF RichTextBox(FlowDocument)中的文本范围
- 22. 选项选择的文本颜色
- 23. RichTextBox的文本颜色的特定行
- 24. Richtextbox mousemove event文本的颜色是
- 25. WPF RichTextBox附加彩色文本
- 26. Javafx文本多字着色
- 27. 每行着色NSTableView文本
- 28. 着色文本视图
- 29. jQuery的选择html元素的着色
- 30. 角UI并网条件着色选择
[一个RichTextBox串的颜色不同部分(HTTPS的可能重复:// stackoverflow.com/questions/1926264/color-different-parts-of-a-richtextbox-string) – 2017-06-01 17:45:12