我开始学习VB.NET,尝试进行语法高亮。当我设置选定文本的颜色时,问题就出现了。它会改变整个richtextbox的内容。
Private Sub txtText_TextChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rtbText.TextChanged
Dim keywords As ArrayList
Dim index As Integer
Dim keyboardCursorPosition As Integer
keywords = New ArrayList()
keywords.Add(New Keyword("<?php", Color.Red))
keywords.Add(New Keyword("echo", Color.Blue))
keywords.Add(New Keyword("?>", Color.Red))
keyboardCursorPosition = rtbText.SelectionStart
For Each keyword As Keyword In keywords
index = rtbText.Text.IndexOf(keyword.getKey())
If index <> -1 Then
rtbText.Select(index, keyword.getKey().Length)
rtbText.SelectionColor = keyword.getColor()
rtbText.DeselectAll()
rtbText.SelectionStart = keyboardCursorPosition
End If
Next
End Sub
rtbText.SelectionColor = prevColor
放在了DeselectAll
之后...),谢谢你让我感到少些困惑 :) - Hans Olsson