Bonjour,
J'utilise actuellement le contrôle RichTextBox et j'ai quelque problèmes.
J'ai développé un UserControle capable de fonctionner comme un traitement de texte. L'utilisateur sait donc éditer un texte, sélectionner une partie de celui-ci et en changer la font et son style à l'aide de différents boutons, etc. Bref, rien de compliqué jusque là.
Ensuite, j’ai développé un système permettant la génération automatisée de document qui fonctionne en gros comme ceci :
J'ai un document de base (template) avec une balise "< AUTEUR >". Lorsque l’utilisateur crée un document automatisé, le programme va rechercher automatiquement son nom, prénom, adresse et plein d'autre données le concernant dans une base de donnée.
Il va remplacer la balise par ces données. Là non plus, aucuns problèmes.
Là où ça se corse c'est que j'aimerai par exemple mettre le Nom en gras, l'adresse en italique et le code postal en souligné.
Pour ce faire, dans mon code je sélectionne le nom puis je change sa font comme ceci.
MyRichTextBox.SelectionFont = New Font("Tahoma", 12, FontStyle.Bold);
// Je sélectionne ensuite l’adresse
MyRichTextBox.SelectionFont = New Font("Tahoma", 12, FontStyle.Italic);
// En ensuite le code postal
MyRichTextBox.SelectionFont = New Font("Tahoma", 12, FontStyle.Underline);
Le problème est le suivant :
Seul le code postal est modifié. En réalité, c’est seulement la dernière zone sélectionnée dans le code qui est modifiée (J’ai testé en changeant l’ordre et c’est bien ça).
On dirait qu'il faut à chaque changement de font, un retour au runtime pour que ça fonctionne. Enfin je le conçois comme ça.
Je rappel que je suis en C# et que les balises tel que "\b" "\b0" ne fonctionnent pas.
Quelle est l'alternative pour C# ? (Si elle existe).
N'hésitez pas à poser des questions car j'ai essayé d'expliquer le problème au mieux mais c'est assez dur
Merci d’avance pour vos propositions.
Partager