none
mettre en forme automatiquement du text brut dans un richtextbox RRS feed

  • Question

  • Bonjour,

    Je veux intégrer du texte provenant d'une base de donnée dans un contrôle richtextbox en programmant une mise en forme. J'ai écris le texte suivant:

    'RTBd‚tailObs= Control“le rtf

    RTBd‚tailObs.ResetText()

    If Sql_Observation_individuelleBindingSource.Count > 0 Then

    For x = 0 To Sql_Observation_individuelleBindingSource.Count

    RTBd‚tailObs.AppendText(" \b " & Sql_Observation_individuelleBindingSource.Current("NomP") & " \b0 " & " \par ")

    If Sql_Observation_individuelleBindingSource.Current("mémo") IsNot Nothing Then

    RTBd‚tailObs.AppendText(Sql_Observation_individuelleBindingSource.Current("Mémo") & " \par ")

    End If

    Sql_Observation_individuelleBindingSource.MoveNext()

    Next

    End If

     

    Mon problème se situe dans le fait que les codes s'inscrivent en clair dans le texte et qu'aucune mise en forme ne se met en place. Quelqu'un pourrait-il m'aider à trouver la solution? merci!

    mardi 6 janvier 2009 09:16

Toutes les réponses

  • Bonjour,

    D'une part, l'intégralité du document doit être contenue dans des accolades.
    Pour mieux voir à quoi ressemble le document RTF que tu veux générer, tu peux te servir de wordpad, réaliser un document qui reflète ce que tu veux obtenir, l'enregistrer en RTF, et l'ouvrir ensuite avec notepad ou l'outil texte de ton choix pour en voir la structure.

    Par ailleurs, la méthode AppendText ajoute du texte un peu comme si l'utilisateur le saisissait. Pour accéder au code RTF du contrôle, tu devras utiliser la propriété RTF de ton richtextbox.
    Ceci est expliqué dans la page web dont je t'ai donné l'URL en réponse à ton premier post:
    http://plasserre.developpez.com/v3-4.htm

    RichTextBox1.RTF= T        'T étant le texte enrichi

    cette page donne aussi un exemple de texte RTF où tu vois que tout est inclus dans des accolades comme expliqué ci-dessus:

    Exemple complet de texte RTF:

    "{\rtf1\ansi 

     { \colortbl

    \red0\green0\blue0;

    \red255\green0\blue0;

    \red0\green255\blue0;}

    {\fonttbl

    {\fo\froman Symbol;}

    {\f1\fswiss Arial;}

    }

    Ce qui suit est en \f1 \cf1 \i Arial Rouge Italique \f0 \cf0 \i0

    } »


    Enfin, toujours dans la même page, il y a un lien vers une introduction au RTF:
    Voir  Format RTF pour le détails

    cette page donne un exemple qui est, je pense, très proche de ce que tu veux obtenir :

    Les bases du codage RTF

     

    Si le contenu d'un fichier Rtf est:

    {\rtf
    Bonjour monsieur
    \par
    Ceci est
    un {\b texte}.
    \par
    FIN
    }
    l'affiche de ce fichier dans Word par exemple montrera:
    Bonjour monsieur
    Ceci est un texte.
    FIN
    Voilà. Je pense qu'avec ça, tu as tous les éléments pour avancer.
    Je t'avoue être un peu vexé que tu n'aies pas porté plus d'attention au contenu de ces pages que je t'ai indiquées, et que tu aurais probablement pu trouver seul. Mais que cela ne gâche pas ton plaisir de coder !

    Cédric.
    mercredi 7 janvier 2009 22:22
  • Hum... merci pour tes réponses... je suis allé sur ces pages et j'ai même fait un copier coller du code pour tester  pour tester... et... rien de plus... j'ai aussi testé avec RichTextBox1.RTF= T mais là, plus du tout de texte... d'où ma nouvelle question...

    Comme tu me dis que ca devrait marcher, je vais voir ou je fais l'erreur...

    Merci encore pour ton aide!

    Michel

    jeudi 8 janvier 2009 10:04
  • Oki... j'ai trouvé, c'était une question d'accolade et je n'avais pas commencé le texte par l'indication {\rtf...}

    Merci mille fois!

    Michel

    jeudi 8 janvier 2009 10:29
  • Bonjour,

    Content que tu aies réussi à résoudre ton problème.
    N'oublie pas de marquer comme réponse le post qui t'a servi. De cette manière, le topic apparaît comme résolu dans le forum.

    Merci d'avance.

    Ced.
    samedi 10 janvier 2009 07:57