OVH Cloud OVH Cloud

RichTextBox

3 réponses
Avatar
Shewy80
Bonjour à tous.

Je cherche à savoir comment faire pour que la ligne que l'on ajoute soit sur
un fond de couleur différent en fonction de l'information ajoutée.

Voilà comment j'ajoute mes infos.


Public Sub AjoutRTFTxt1(texte As String, Optional Gras As Boolean = False,
Optional Couleur As Long = 0, Optional soul As Boolean = False)
'permet d'écrire dans le RichTextBox1 (mise en forme variable)

With RichTextBox1
.SelStart = Len(.Text)
.SelBold = Gras
.SelColor = Couleur
.SelUnderline = soul
.SelText = texte
.SelStart = Len(.Text)
'Fond en couleur ??
End With

Ainsi une ligne sur deux par exmple je peux mettre un fond gris ...

Merci de vos infos

3 réponses

Avatar
Zoury
c'est impossible avec le RichTextBox.. tu peux peut-être employé une grille
comme le FlexGrid, il me semble qu'il est possible de modifier la couleur de
fond de chaque ligne avec ce contrôle ..

--
Cordialement
Yanick
MVP pour Visual Basic

"Shewy80" a écrit dans le message de
news:cu0bei$itt$
Bonjour à tous.

Je cherche à savoir comment faire pour que la ligne que l'on ajoute soit


sur
un fond de couleur différent en fonction de l'information ajoutée.

Voilà comment j'ajoute mes infos.


Public Sub AjoutRTFTxt1(texte As String, Optional Gras As Boolean = False,
Optional Couleur As Long = 0, Optional soul As Boolean = False)
'permet d'écrire dans le RichTextBox1 (mise en forme variable)

With RichTextBox1
.SelStart = Len(.Text)
.SelBold = Gras
.SelColor = Couleur
.SelUnderline = soul
.SelText = texte
.SelStart = Len(.Text)
'Fond en couleur ??
End With

Ainsi une ligne sur deux par exmple je peux mettre un fond gris ...

Merci de vos infos




Avatar
Fabrice MALAINGRE
Bonjour Shewy80,

Je cherche à savoir comment faire pour
que la ligne que l'on ajoute soit sur
un fond de couleur différent
en fonction de l'information ajoutée.



Je pense que ma réponse ne va forcément te faire plaire mais, à ma
connaissance, la seule manière de faire est de directement manipuler le
texte RTF !

En effet, la syntaxe RTF comporte un mot de commande (Control Word) qui
autorise la mise en surbrillance d'une partie du texte : ce mot de commande
est "highlight".
Il doit être suivi d'un numéro qui référence une table de couleur définie
dans le RTF : ainsi "highlight1" surligne le text grâce à la première
entrée de la table de couleur, tandis que "highlight0" désactive la
surbrillance.

Par exemple, le texte RTF suivant provoque l'effet escompté :

RichTextBox1.TextRTF = "{rtf1{colortbl;red192green255blue255;} My First
Lineparhighlight1 My Second Linehighlight0par My Third
Lineparhighlight1 My Forth Linehighlight0par}"

Par contre, cette solution nécessite la mise en place d'un encoder RTF (voir
également d'un décodeur) ! Et là, c'est une autre histoire :-)

Cordialement

____________________________
Fabrice MALAINGRE
Architecte Logiciel - Chef de Projet
THEORIS - www.theoris.fr
Avatar
Kiriasse
Il suffit d'ouvrir le fichier RTF en mode texte.
Open "C:...MonFichier.RTF" For Output As #1
Print #1, "...."
Print #1, "...."
Print #1, "...."
Close #1

Si l'on connaît les codes RTF (ce n'est pas plus compliqué que le langage
HTML), on peut faire ce qu'on veut.

Kiriasse
www.kiriasse.fr

== "Fabrice MALAINGRE" a écrit dans le message de news:

Bonjour Shewy80,

Je cherche à savoir comment faire pour
que la ligne que l'on ajoute soit sur
un fond de couleur différent
en fonction de l'information ajoutée.



Je pense que ma réponse ne va forcément te faire plaire mais, à ma
connaissance, la seule manière de faire est de directement manipuler le
texte RTF !

En effet, la syntaxe RTF comporte un mot de commande (Control Word) qui
autorise la mise en surbrillance d'une partie du texte : ce mot de
commande est "highlight".
Il doit être suivi d'un numéro qui référence une table de couleur définie
dans le RTF : ainsi "highlight1" surligne le text grâce à la première
entrée de la table de couleur, tandis que "highlight0" désactive la
surbrillance.

Par exemple, le texte RTF suivant provoque l'effet escompté :

RichTextBox1.TextRTF = "{rtf1{colortbl;red192green255blue255;} My
First Lineparhighlight1 My Second Linehighlight0par My Third
Lineparhighlight1 My Forth Linehighlight0par}"

Par contre, cette solution nécessite la mise en place d'un encoder RTF
(voir également d'un décodeur) ! Et là, c'est une autre histoire :-)

Cordialement

____________________________
Fabrice MALAINGRE
Architecte Logiciel - Chef de Projet
THEORIS - www.theoris.fr