如何在不删除 RichTextBox 中的文本的情况下添加新行并更改 VB.Net 中的颜色?
How do I add a new line without deleting text in a RichTextBox and change it's colour in VB.Net?
反正我好像找不到答案。但我的问题是;
在 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
基本上它所做的就是创建一行,添加一个新行并继续输入文本。但我无法添加新行。打印 'Warnings' 并将该文本更改为黄色。但是使用互联网上的所有代码它仍然是白色的?
如果有人能提供帮助,将不胜感激。
如果不清楚让我总结一下:
*打印文本并保持白色。
*打印一个新行,所有内容都保留在 RichTextBox 中。
*文本会说,严重,警告,信息等
*并且它需要更改文本的颜色但不更改所有其他打印文本的颜色。
提前致谢
这是一个可以帮助您的子程序:
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 文本的长度。然后根据记录的长度将 SelectionStart
和 SelectionLength
设置为 select 附加文本。然后它使用 SelectionColor
属性.
更改 selected 文本的颜色
反正我好像找不到答案。但我的问题是;
在 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
基本上它所做的就是创建一行,添加一个新行并继续输入文本。但我无法添加新行。打印 'Warnings' 并将该文本更改为黄色。但是使用互联网上的所有代码它仍然是白色的?
如果有人能提供帮助,将不胜感激。
如果不清楚让我总结一下:
*打印文本并保持白色。
*打印一个新行,所有内容都保留在 RichTextBox 中。
*文本会说,严重,警告,信息等
*并且它需要更改文本的颜色但不更改所有其他打印文本的颜色。
提前致谢
这是一个可以帮助您的子程序:
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 文本的长度。然后根据记录的长度将 SelectionStart
和 SelectionLength
设置为 select 附加文本。然后它使用 SelectionColor
属性.