Reconnaitre du code Visual Basic dans un textbox

cs_cosmic Messages postés 61 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 16 mai 2005 - 1 déc. 2002 à 18:46
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 - 1 déc. 2002 à 21:03
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

cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
1 déc. 2002 à 18:58
Je ne crois pas que ça soit possible. Il me semble que dans une TextBox, tout le texte a la même couleur.
0
cs_Cerber Messages postés 31 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 5 décembre 2002
1 déc. 2002 à 20:50
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
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
1 déc. 2002 à 21:03
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
Rejoignez-nous