RichTextBox : 1 seul mot précis en couleur ? possible ? [Résolu]

allthew3 552 Messages postés samedi 8 janvier 2005Date d'inscription 12 avril 2008 Dernière intervention - 5 mars 2007 à 17:56 - Dernière réponse : allthew3 552 Messages postés samedi 8 janvier 2005Date d'inscription 12 avril 2008 Dernière intervention
- 14 mars 2007 à 11:12
Bonjour,

Est-ce que quelqu'un serait s'il est possible, en Visual Basic .NET 2005 (donc FrameWork 2), de colorer un mot précis dans un contrôle RichTextBox ...

Si non, comment contourner, quoi d'autre utilisé ?

Merci à tous!

++
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 5 mars 2007 à 18:05
3
Merci
Oui c'est possible, Propriété .SelectionColor

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #

Merci cs_casy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de cs_casy
Meilleure réponse
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 5 mars 2007 à 18:48
3
Merci
.SelectionColor modifie la couleur du texte sélectionné.

Reste à toi de sélectionner ce texte, tu as effectivement plusieurs pistes possibles. Regarde aussi surtout la methode .Select de la classe RichTextBox

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #

Merci cs_casy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de cs_casy
Meilleure réponse
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 5 mars 2007 à 21:49
3
Merci
tiens regarde ce code, je l'ai un peu corriger

Dim keyword As String() = {"echo", "shuffle", "php"}

Private Sub RichTextBox1_TextChanged(ByVal
sender As System.Object, ByVal e As System.EventArgs) Handles
RichTextBox1.TextChanged
        Dim line As String = ""

        'Sauvegarde de la
couleur et de la position actuelle
        Dim defColor As Color = RichTextBox1.SelectionColor
        Dim defPos As Integer = RichTextBox1.SelectionStart

        Try
                With RichTextBox1
                        For i As Integer = 0 To .Lines.GetUpperBound(0)
                                line = .Lines.GetValue(i).ToString
                                If String.IsNullOrEmpty(line) Then
Exit Try
                                line = line.ToLowerInvariant
                                For j As Integer = 0 To keyword.GetUpperBound(0)
                                        If line.Contains(keyword(j))
Then
                                          .SelectionStart = line.IndexOf(keyword(j)) +
.GetFirstCharIndexFromLine(i)
                                         
.SelectionLength =
keyword(j).Length
                                          .SelectionColor =
Color.Blue
                                        End If
                                Next
                        Next
                End With

        Catch ex As Exception
                Exit Try

        Finally
                '
Systématiquement, on restaure la position du curseur et la couleur par
défaut
                RichTextBox1.SelectionStart
= defPos
                RichTextBox1.SelectionLength = 0
                RichTextBox1.SelectionColor = defColor
        End Try

End Sub

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #

Merci cs_casy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de cs_casy
warham 23 Messages postés lundi 6 février 2006Date d'inscription 17 novembre 2007 Dernière intervention - 5 mars 2007 à 18:03
0
Merci
hmm, faire un peu comme notepad en C++ c'est ca?
Commenter la réponse de warham
allthew3 552 Messages postés samedi 8 janvier 2005Date d'inscription 12 avril 2008 Dernière intervention - 5 mars 2007 à 18:12
0
Merci
ah oui tu as raison casy j'avais mal lu SelectionColor : mais je vois pas très bien comment l'utiliser :

dans le handles textchanged :

RichTextBox1.SelectionColor.Blue et après ??
(dsl si c'est une question "bete" mais je vois pas ...)

merci encore
Commenter la réponse de allthew3
allthew3 552 Messages postés samedi 8 janvier 2005Date d'inscription 12 avril 2008 Dernière intervention - 5 mars 2007 à 18:24
0
Merci
c'est bon je viens de comprendre :

if mot.contains("echo") then
.selectioncolor = color.blue
end if

c'est bien comme ça ?
Commenter la réponse de allthew3
allthew3 552 Messages postés samedi 8 janvier 2005Date d'inscription 12 avril 2008 Dernière intervention - 5 mars 2007 à 18:31
0
Merci
y'a bien quelque chose de possible avec .lines et .selectioncolor mais je trouve pas (j'ai parlé trop vite !) ...
Commenter la réponse de allthew3
allthew3 552 Messages postés samedi 8 janvier 2005Date d'inscription 12 avril 2008 Dernière intervention - 5 mars 2007 à 18:56
0
Merci
ah merci!!! tu es un boss :P

oui select + une boucle For pour les lignes ...
merci bien
Commenter la réponse de allthew3
allthew3 552 Messages postés samedi 8 janvier 2005Date d'inscription 12 avril 2008 Dernière intervention - 5 mars 2007 à 19:20
0
Merci
Voici ce que j'ai écris mais c'est encore plus compliqué que je le pensais :-(
si tu pouvais m'aider ... c'est pourtant simple (dans la tete en tout cas) mais pour codé ça ... wow!



Dim



keyword

As



Object
() = {

"echo"
,

"shuffle"
,

"php"
}


Private



Sub
RichTextBox1_TextChanged(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles
RichTextBox1.TextChanged


Try






With
RichTextBox1


Dim
line

As



String
=

""






For
i

As



Integer
= 0

To
.Lines.GetUpperBound(0)line = .Lines.GetValue(i).ToString


If



String
.IsNullOrEmpty(line)

Then



Exit



Try

line = line.ToLowerInvariant







For
j

As



Integer
= 0

To
keyword.GetUpperBound(0)


If
line.Contains(keyword.GetValue(j).ToString)

Then






Dim
debut

As



Integer
= line.IndexOf(keyword.GetValue(j).ToString)


Dim
taille

As



Integer
= keyword.GetValue(j).ToString.Length.Select(debut, taille)

.SelectionColor = Color.Blue


End



If






Next






Next






End



With






Catch
ex

As
Exception


Exit



Try






End



Try






End



Sub
Commenter la réponse de allthew3
allthew3 552 Messages postés samedi 8 janvier 2005Date d'inscription 12 avril 2008 Dernière intervention - 5 mars 2007 à 19:22
0
Merci
oups petite erreur avec le if String.IsNullOrEmpty ça quitte tout le Try-Catch, mais enfin je pense que tu comprendras le code quand même
Commenter la réponse de allthew3
allthew3 552 Messages postés samedi 8 janvier 2005Date d'inscription 12 avril 2008 Dernière intervention - 14 mars 2007 à 11:12
0
Merci
ah oui merci ! j'aurais jamais trouvé tout seul !

merci encore
++
Commenter la réponse de allthew3

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.