VB.NET语法突出显示文本内部
我刚刚开始在VB.NET中查看一些语法高亮显示的示例,它的工作非常出色。但是,有没有办法检查另一个文本中的某些文本?例如,如果我想将VB.NET语法突出显示文本内部,vb.net,visual-studio,Vb.net,Visual Studio,我刚刚开始在VB.NET中查看一些语法高亮显示的示例,它的工作非常出色。但是,有没有办法检查另一个文本中的某些文本?例如,如果我想将“高亮显示为橙色,则可以。但是,如果我希望“中的任何文本都是蓝色的,该怎么办?有没有办法只检查里面的文字?我当前的代码(不是我的,从 Private Sub-RichTextBox1_TextChanged(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理RichTextBox1.TextChanged
“
高亮显示为橙色,则可以。但是,如果我希望“
中的任何文本都是蓝色的,该怎么办?有没有办法只检查里面的文字?我当前的代码(不是我的,从
Private Sub-RichTextBox1_TextChanged(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理RichTextBox1.TextChanged
“暗淡的
小括号作为新列表(字符串)
“水
括号。加上(“”)
括号。添加(“/>”)
括号.Add(“如果您想要获得合理的准确性,那么现在是开始学习词法分析器、解析器和语法树的时候了。”.NET编译器平台(Roslyn)是开始学习Joel所说内容的好地方。否则,您可以始终使用。
Private Sub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox1.TextChanged
' Dim
Dim brackets As New List(Of String)
' AQUA
brackets.Add("<")
brackets.Add(">")
brackets.Add("/>")
brackets.Add("</")
Dim tags As New List(Of String)
' LIME GREEM
tags.Add("html")
tags.Add("title")
tags.Add("head")
If RichTextBox1.Text.Length > 0 Then
Dim selectStart As Integer = RichTextBox1.SelectionStart
RichTextBox1.Select(0, RichTextBox1.Text.Length)
RichTextBox1.SelectionColor = Color.Black
RichTextBox1.DeselectAll()
For Each oneWord As String In brackets
Dim pos As Integer = 0
Do While RichTextBox1.Text.ToUpper.IndexOf(oneWord.ToUpper, pos) >= 0
pos = RichTextBox1.Text.ToUpper.IndexOf(oneWord.ToUpper, pos)
RichTextBox1.Select(pos, oneWord.Length)
RichTextBox1.SelectionColor = Color.Aqua
pos += 1
Loop
Next
For Each tagWord As String In tags
Dim pos As Integer = 0
Do While RichTextBox1.Text.ToUpper.IndexOf(tagWord.ToUpper, pos) >= 0
pos = RichTextBox1.Text.ToUpper.IndexOf(tagWord.ToUpper, pos)
RichTextBox1.Select(pos, tagWord.Length)
RichTextBox1.SelectionColor = Color.LimeGreen
pos += 1
Loop
Next
RichTextBox1.SelectionStart = selectStart
End If
End Sub