我创建了一个方法,在代码中你可以编写WritetoConsole(SomeString, LogType)
但是当激活LogType时(每种类型的日志有不同的颜色),它会改变richtextbox的整个颜色,而不是实际的行那是进入的。
它应该是WinForm应用程序中的自定义控制台。所以基本上无论输入Message
是什么都应该写入控制台,取决于LogitType。但我不希望它改变整个RichTextBox的文本颜色。我只想要输入的特定行
Dim NewLine As String = (Chr(13))
Dim LogType As LogerType
''' <summary>
''' Writes a Message to the Homework Helper Console
''' </summary>
''' <param name="Message">The Message to Display to Console</param>
''' <param name="LogitType">The Type of Message to Display to Console</param>
''' <remarks></remarks>
Public Sub WritetoConsole(Message As String, LogitType As Color)
LogerType.Normal = Color.White
LogerType.Warning = Color.Yellow
LogerType.ErrorMessage = Color.Maroon
LogerType.Homework = Color.Green
LogerType.Project = Color.Red
LogerType.Test = Color.RosyBrown
If Message = Nothing Then
rtbInput.AppendText(Errors(3))
Else
rtbInput.AppendText(NewLine & Message)
End If
If LogitType = LogerType.Normal Then
rtbInput.ForeColor = LogerType.Normal
ElseIf LogitType = LogerType.Warning Then
rtbInput.ForeColor = LogerType.Warning
ElseIf LogitType = LogerType.ErrorMessage Then
rtbInput.ForeColor = LogerType.ErrorMessage
ElseIf LogitType = LogerType.Homework Then
rtbInput.ForeColor = LogerType.Homework
ElseIf LogitType = LogerType.Project Then
rtbInput.ForeColor = LogerType.Project
ElseIf LogitType = LogerType.Test Then
rtbInput.ForeColor = LogerType.Test
ElseIf LogitType = Nothing Then
WritetoConsole((Errors(3)), LogerType.ErrorMessage)
Else
MsgBox(Errors(4))
End If
End Sub
答案 0 :(得分:0)
您必须使用rtbInput.SelectionColor
而不是rtbInput.ForeColor
。所以:
Public Sub WritetoConsole(Message As String, LogitType As Color)
LogerType.Normal = Color.White
LogerType.Warning = Color.Yellow
LogerType.ErrorMessage = Color.Maroon
LogerType.Homework = Color.Green
LogerType.Project = Color.Red
LogerType.Test = Color.RosyBrown
rtbInput.Select(rtbInput.TextLength, 0)
If LogitType = LogerType.Normal Then
rtbInput.SelectionColor= LogerType.Normal
ElseIf LogitType = LogerType.Warning Then
rtbInput.SelectionColor= LogerType.Warning
ElseIf LogitType = LogerType.ErrorMessage Then
rtbInput.SelectionColor= LogerType.ErrorMessage
ElseIf LogitType = LogerType.Homework Then
rtbInput.SelectionColor= LogerType.Homework
ElseIf LogitType = LogerType.Project Then
rtbInput.SelectionColor= LogerType.Project
ElseIf LogitType = LogerType.Test Then
rtbInput.SelectionColor= LogerType.Test
ElseIf LogitType = Nothing Then
WritetoConsole((Errors(3)), LogerType.ErrorMessage)
Else
MsgBox(Errors(4))
End If
If Message = Nothing Then
rtbInput.AppendText(Errors(3))
Else
rtbInput.AppendText(NewLine & Message)
End If
End Sub
瓦尔特