' 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