devxlogo

Removing styles from the font of the selected text of a RichTextBox

Removing styles from the font of the selected text of a RichTextBox

' Remove a style from the selection of a RichTextBox' Example: RemoveFontStyle(richTextBox1, FontStyle.Bold)Public Sub RemoveFontStyle(ByVal rtb As RichTextBox, _    ByVal style As System.Drawing.FontStyle)    ' if the selection length is > 0, work char by char.    ' This is necessary because the selected text may have different    ' styles in different substrings, and we want to preserve all    ' the original styles of any char, except for removing    ' the specified one    If rtb.SelectionLength > 0 Then        Dim selStart As Integer = rtb.SelectionStart        Dim selLength As Integer = rtb.SelectionLength        Dim currFont As System.Drawing.Font        Dim currStyle As System.Drawing.FontStyle        Dim i As Integer        For i = 0 To selLength - 1            ' select 1 char            rtb.Select(selStart + i, 1)            ' get the font of the selected char            currFont = rtb.SelectionFont            ' get the current style of this char, and             ' remove the specified style            currStyle = currFont.Style            currStyle = currStyle And Not style            ' create and assign to the char a new font            ' with the new style            rtb.SelectionFont = New Font(currFont.FontFamily, currFont.Size, _                currStyle)        Next        ' reselect the original selection        rtb.Select(selStart, selLength)    Else        rtb.SelectionFont = New Font(rtb.SelectionFont, _            rtb.SelectionFont.Style And Not style)    End IfEnd Sub

devx-admin

Share the Post: