如何在不删除RichTextBox中的文本的情况下添加新行并在VB.Net中更改它的颜色?

时间:2015-12-23 21:10:24

标签: vb.net colors richtextbox

无论如何,我似乎无法找到答案。但我的问题是;

在visual basic中我想制作一个叫做问题面板的东西并测试它我正在进行调试。它使用进度条和计时器。这是目前为止的一些代码。

        ProgressBar1.Increment(1)
    If ProgressBar1.Value = 1 Then
        RichTextBox1.Text = "A developer debug has been executed, please wait"
    End If

    If ProgressBar1.Value = 3 Then
        RichTextBox1.SelectionStart = RichTextBox1.Text.Length + 1
        RichTextBox1.Text &= "."
    End If

    If ProgressBar1.Value = 5 Then
        RichTextBox1.SelectionStart = RichTextBox1.Text.Length + 1
        RichTextBox1.Text &= "."
    End If

    If ProgressBar1.Value = 7 Then
        RichTextBox1.SelectionStart = RichTextBox1.Text.Length + 1
        RichTextBox1.Text &= "."
    End If

    If ProgressBar1.Value = 10 Then
        RichTextBox1.Text &= Environment.NewLine & "Testing Warnings"
        RichTextBox1.SelectionColor = Color.Yellow
    End If

    If ProgressBar1.Value = 15 Then
        RichTextBox1.SelectionColor = Color.Yellow
        RichTextBox1.Text += Environment.NewLine + "Warning"
    End If

基本上它只是创建一条线,添加一条线并继续键入文本。但我无法添加新行。打印'警告'并将该文本更改为黄色。但是使用互联网上的所有代码它会保持白色吗?

如果有人可以提供帮助,我们将不胜感激。

如果不清楚,请让我总结一下:

*打印文本并将所有内容保持为白色。

*打印一个新行,其中包含RichTextBox中的所有内容。

*文本会说,关键,警告,信息等

*它需要更改文本的颜色,但不能更改所有其他打印的文本颜色。

提前致谢

1 个答案:

答案 0 :(得分:0)

这是一个可以帮助你的子程序:

Private Sub AppendTextWithColor(rich_text_box As RichTextBox, color As Color, text As String)
    Dim length_before = rich_text_box.TextLength

    rich_text_box.AppendText(text)

    Dim length_after = rich_text_box.TextLength

    rich_text_box.SelectionStart = length_before
    rich_text_box.SelectionLength = length_after - length_before
    rich_text_box.SelectionColor = color
End Sub

它允许您使用特定颜色将一些文本附加到RichTextBox。

你可以像这样使用它:

AppendTextWithColor(RichTextBox1, Color.Yellow, Environment.NewLine + "Warning")

它通过在追加新文本之前和之后记录RichTextBox文本的长度来工作。然后,它会根据记录的长度设置SelectionStartSelectionLength,以选择附加的文本。然后,它使用SelectionColor属性更改所选文本的颜色。