2016-08-26 2 views
0

J'ai un programme qui se connecte à une zone richtext, les journaux sont codés par couleur en fonction de l'erreur/de l'événement.Préservation de la mise en forme de la zone de texte enrichie lors de la modification d'une ligne

Voici comment ajouter du texte à mes journaux avec le style par défaut.

rtbLogs.AppendText("Log Text")  

Voici comment ajouter du texte lorsqu'ils sont colorés.

rtbLogs.Select(rtbLogs.TextLength, 0) 
rtbLogs.SelectionFont = New Font(rtbLogs.Font, FontStyle.Regular) 
rtbLogs.SelectionColor = Color.Red 'Settings the font styles 
rtbLogs.AppendText("Error Text") 
rtbLogs.SelectionFont = rtbLogs.Font 
rtbLogs.SelectionColor = rtbLogs.ForeColor 'reset style to default 

Maintenant, j'ai parfois besoin de mettre à jour 1 ligne dans mon journal, après l'édition disparaît toute la mise en forme. Après avoir édité les prochains journaux, j'ajoute avec être formaté comme je veux mais disparaît encore si j'édite 1 ligne.

Voici comment je modifie une ligne.

Dim lines() As String = Me.rtbLogs.Lines 
lines(5) = "Updated Text" 
Me.rtbLogs.Lines = lines 

Comment préserver le formatage?

+0

http://www.codeproject.com/Questions/594850/DeleteplusaplusspecifiedpluslineplusinplusRichText – Slai

Répondre

1

peut-être quelque chose comme ça

Me.rtbLogs.Rtf = Me.rtbLogs.Rtf.Replace(Me.rtbLogs.Lines(5), "Updated Text")