Reconnaitre du code Visual Basic dans un textbox

Signaler
Messages postés
61
Date d'inscription
mercredi 30 octobre 2002
Statut
Membre
Dernière intervention
16 mai 2005
-
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
-
Slt.
J'ai besoin de votre aide parce que je voudrais que mon textbox sache reconnaitre si il y a des commentaire type visual basic et qu'il le mette en vert comme visual basic.
Voila ce que moi j'ai ecrit: (soyez indulgent je suis débutant)

Private Sub Text1_Change()
If Left(Text1.Text, 1) = "'" Then
Text1.ForeColor = vbGreen
Else
Text1.ForeColor = vbBlack
End If
End Sub

le principe de ce code est que dès qu'il y a le signe ' devant un phrase il colorise en vert le text, mais le problème c'est qu'il colorise le text du textbox en entier et que le signe ' ne fontionne seulement que sur la première ligne du textbox
merci de votre aide...

3 réponses

Messages postés
1858
Date d'inscription
samedi 29 juin 2002
Statut
Membre
Dernière intervention
17 octobre 2013
10
Je ne crois pas que ça soit possible. Il me semble que dans une TextBox, tout le texte a la même couleur.
0
Messages postés
31
Date d'inscription
dimanche 1 avril 2001
Statut
Membre
Dernière intervention
5 décembre 2002

Salut,

Tu ne peux pas avec un textbox, utilise plutot un richtextbox, c'est plus compliqué car il faut connaitre le codage rtf mais c'est le seul moyen à ma connaissance.
0
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
25
Il faut utiliser le RichTextBox :

r est un RichTextBox avec Multiline = false

Private Sub r_Change()
On Error Resume Next
Dim x As Long, st As Long, l As Long
x = InStr(r.Text, "'") - 1
If x = -1 Then
st = r.selstart
r.selstart = 0
r.SelLength = Len(r.Text)
r.SelColor = vbBlack
r.selstart = st
r.SelLength = 0
End If
If x > 0 Then
l = InStr(x, r.Text, vbCrLf)
st = r.selstart
r.selstart = xIf l > 0 Then r.SelLength l Else r.SelLength Len(r.Text) - x
r.SelColor = vbGreen
r.selstart = st
r.SelLength = 0
End If
End Sub

voila

ShareVB
0