VB.NET을 배우기 시작했고 구문 강조를하려고합니다. 선택한 텍스트의 색을 설정할 때 문제가 발생합니다. 그것은 전체 richtextbox의 내용을 변경합니다.VB.NET : 구문 하이라이트
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' ...), 나를 덜 혼란스럽게 느끼게 해줘서 고마워. :) –