Inserer du text RTF dans RichTextBox [Fermé]

Signaler
Messages postés
9
Date d'inscription
mardi 20 avril 2004
Statut
Membre
Dernière intervention
31 mai 2007
-
Whismeril
Messages postés
14114
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
23 janvier 2020
-
Bonjour à tous,

je cherche tout simplement à inserer du texte au format Rtf à la fin d'une RichTextBox.
j'arrive tres bien à inserer mais je n'arrive pas à rajouter (genre AppendText
).

La méthode la plus évidente (Rtb.rtf += data) ne fonctionne pas.
comment puis je faire?

merci d'avance
 

10 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
43
Salut,
Tu dois utiliser la méthode AppendText.... c'est tout

<hr />
-Blog-
Messages postés
9
Date d'inscription
mardi 20 avril 2004
Statut
Membre
Dernière intervention
31 mai 2007

merci c'est la première chose que j'ai testé ;)

Le pb c'est que le texte affiché n'est pas formatté et me donne un joli
{\rtf1\ansi\ansicpg1252\deff0\deflang1036{\fonttbl{\f0\fnil\fcharset0 Georgia;}}
\viewkind4\uc1\pard\i\f0\fs20 bonjour\par
}
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
43
En fait j'ai la ta question trop vite...
Si tu veux ajouter du RTF, tu dois bien utiliser la property RTF. Le problème, c'est que quand tu fais le get, il te retourne un string qui se termine par '}', si tu lui ajoutes quelques choses, ça ne sera donc pas pris en compte (c'est pour ça que le += ne fonctionne pas).
Si tu fais un remove pour supprimer le caractère de fin, et qu'ensuites tu ajoutes ton texte, ça marche mais je ne suis pas certain que ça soit la meilleure solution...

<hr />
-Blog-
Messages postés
9
Date d'inscription
mardi 20 avril 2004
Statut
Membre
Dernière intervention
31 mai 2007

le pb c'est que je peux avoir un style identique ou différent pour chacun des textes insérés.
je ne comprend pas que cela ne soit pas possible !!!!!!!!
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
43
Tu peux ajouter du plain texte (avec AppendText), et ensuite appeler les méthodes SelectionXXX() pour mettre le texte ajouté en forme.... (couleur, font, etc)

<hr />
-Blog-
Messages postés
9
Date d'inscription
mardi 20 avril 2004
Statut
Membre
Dernière intervention
31 mai 2007

dc est ce que ca veux dire que je suis obligé de parser ma chaine (citée ci dessus) récupérer la police, couleur , taille .. et faire

      With RTB_Chat
                    .SelectionStart = Len(.Rtf)
                    .SelectionFont = New Font("Arial", 13, FontStyle.Bold)
                    .SelectionColor = Color.Black
                    .AppendText("Mon Texte")
                    .AppendText(vbCrLf)
                End With

mais en c#
ca me paraissait si simple !!
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
43
Soit tu insères le plain texte et ensuite tu appelles les fonctions de mise en page comme je t'ai expliqué ci-dessus, soit tu ajoutes directement le RTF avec la property RTF. Dans ce cas, il faudra épurer le string de la richtextbox avant de faire ton ajout (+=) comme je te l'ai aussi indiqué ci-dessus.
Autres solution à éventuellement explorer: Travailler avec un stream en mémoire, puis ensuite faire un LoadFile(myStream, ...)

Je ne vois pour le moment pas d'autres solutions...

<hr />
-Blog-
Messages postés
223
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
3 juin 2019

Tu vas surement trouver ton bonheur ici car il y a tout la
http://www.codeproject.com/cs/miscctrl/csexrichtextbox.asp

www.survey-copter.com
Messages postés
1
Date d'inscription
mardi 2 septembre 2008
Statut
Membre
Dernière intervention
13 décembre 2009

oui pour moi je propose que cette fonction apparait plus compliquée en C# d'ailleurs le format de RTF est trop compliqué ; parexemple pour les couleur il faut donner le pourcentge en couleur de bases et aussi
_rTBox1.Rtf =@"{\rtf1\ansi This text is in \b bold\b0.}"; pour écrire This text is in blond avec blond est en gras c'est à peu près le HTML (langage de balise)

rose_lait
Messages postés
1
Date d'inscription
vendredi 4 juillet 2014
Statut
Membre
Dernière intervention
4 juillet 2014

j'ai fait ça est c'est OK
this.richTextBox1.Rtf = @"{\rtf1\ainsi voici un \b gras\bo ok}";
Whismeril
Messages postés
14114
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
23 janvier 2020
331
Bonjour, le fil a 7 ans et ta réponse est hors sujet, comme celle de perleros d'ailleurs la demande initiale et d'ajouter un texte avec un format spécifique à un texte existant avec un autre format.
Je ferme donc ce post.