更改richtextbox中的行或单词的颜色?

Ele*_*ios 3 vb.net colors richtextbox richtext

我可以改变一行的颜色和/或一个单词来保存richtextbox中的其他颜色吗?

例如,我想将"Processing:..."行改为黄色,这可能吗?

谢谢你的阅读

在此输入图像描述

Nep*_*luz 7

这可能是未来的一点点晚,但所有你需要做的是文本附加到RichTextBox的,那之后恢复到原来的颜色,例如前将selectionColor设置你想要的颜色

With RichTextBox1
  .SelectionColor = Color.Yellow
  .AppendText("Processing: ")
  .SelectionColor = Color.LimeGreen
  .AppendText("el senor de los anillakos.avi" & vbCr)
End With
Run Code Online (Sandbox Code Playgroud)


Alt*_*F4_ 5

这个希望应该为你做的伎俩,例如,如果该行包含 "Processing..."

    for(int i=0; i<rtb.Lines.Length; i++) 
{ 
   string text = rtb.Lines[i];
   rtb.Select(rtb.GetFirstCharIndexFromLine(i), text.Length); 
   rtb.SelectionColor = colorForLine(text); 
} 

private Color colorForLine(string line)
{
    if(line.Contains("[Processing...]", StringComparison.InvariantCultureIgnoreCase) return Color.Green;
Run Code Online (Sandbox Code Playgroud)

顺便说一下,我知道你说这是针对vb.net的,但是你可以使用转换器将代码转换为vb.net这里有一个链接

C#到VB

我不知道这是否正确,但我认为它在vb中看起来有点像这样

Private Sub Test()
    For Each i As Integer In RichTextBox1.Lines.Length

        Dim Text As String = RichTextBox1.Lines(i)
        RichTextBox1.Select(RichTextBox1.GetFirstCharIndexFromLine(i), Text.Length)
        RichTextBox1.SelectionColor = ColorForLine(Text)
    Next
End Sub

Private Function ColorForLine(Line As String) As color
    If Line.Contains("Processing", ) Then
        Return ColorForLine.Green
    End If
End Function
Run Code Online (Sandbox Code Playgroud)