Problème de formatage RichTextBox

desalib Messages postés 9 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 22 mai 2010 - 23 févr. 2010 à 07:52
desalib Messages postés 9 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 22 mai 2010 - 24 févr. 2010 à 15:27
Bon premièrement je vous souhaite une agréable journée/soirée à tous et je vous remercie d'avance pour l'aide que vous pourriez m'apporter.

Bon, vous allez peut-être me dire que la question a déjà été posée mais cela fait 4 heures que je cherche et jusqu'à maintenent les résultats sont nul donc je m'essais ici.

Voici la mise en situation : Je dois changer le format de mon RichTextBox, jusque la pas de problème je réussi très bien avec :

RichTextBox1.SelectionFont = New Font(RichTextBox1.Font, FontStyle.Bold Xor RichTextBox1.SelectionFont.Style)

et :

RichTextBox1.SelectionFont = New Font(RichTextBox1.Font, FontStyle.Italic Xor RichTextBox1.SelectionFont.Style)

Le premier change effectivement la selection en gras et le deuxième en italic. Le problème survient quand je sélectionne deux format différent a la fosi poru les modifier (l'un pert son format de base). Exemple :

Je sélectionne "aaaaaa
" (3 a régulier suivi de 3 a gras) et j'utilise le code pour formater en italic mais le résultat donne "aaaaaa" (6 a italic) plutôt que "aaaaaa
" (3 a italic suivi de 3 a gras et italic) .

Bon j'espère avoir été clair dans mes explications, n'hésiter pas à demander des clarifications si vous ne comprenez pas mon problème.

2 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
23 févr. 2010 à 09:44
C'est dangereux de coder ainsi...
tu as une selection mixte.

on peut donc s'attendre a ce que SelectionFont.Style soit un peu perturbé...

s'il renvoie Regular pour ta selection mixte, et que tu ajoutes l'italic, tu perds le gras, c'est normal.

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
desalib Messages postés 9 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 22 mai 2010
24 févr. 2010 à 15:27
Bon j'ai trouver quelque chose qui marche partiellement seulement je ne sais pas comment retourner seulement la propriété à false donc tout redevien "regular" quand je retire le format.(code d'une source sur ce site je sais plus qui en est l'auteur)

Dim selectionRange As New TextRange(RTFBox.Selection.Start, RTFBox.Selection.End)
If selectionRange.GetPropertyValue(Inline.TextDecorationsProperty) Is Windows.TextDecorations.Underline Then
RTFBox.Selection.ApplyPropertyValue(RichTextBox.FontStyleProperty, "Normal")
Else
RTFBox.Selection.ApplyPropertyValue(Inline.TextDecorationsProperty, Windows.TextDecorations.Underline)
End If

Peut-être que quelqu'un pourrait m'aider un peu car j'ai vraiment tout esseiller et même de passer les caractère un à un en substring ou encore de bouger le text a modifier dans un richtextbox temporaire pour lui faire subir les modifs et le remetre à sa place mais rien n'y fait car dans le dernier cas ça marche comme je veux mais il y a un "passe-ligne" qui se cré à la suite du texte.

Merci d'avance!
0