J'ai commencé à apprendre VB.NET et j'essaie de faire une mise en évidence de la syntaxe. Le problème se produit lorsque je définis la couleur du texte sélectionné. Il change le contenu de l'ensemble richtextbox.VB.NET: Syntax Highlight
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
Ah, je pensais que c'était mais j'ai décidé de l'essayer avant de poster une réponse et je ne pouvais pas comprendre pourquoi cela ne fonctionnait pas (pour une raison quelconque, j'ai mis le 'rtbText.SelectionColor = prevColor' juste après le 'DeselectAll' ...), merci de me faire sentir moins confus :) –