Font styles in a RichTextBox *[RESOLVED]*
I have the following code which applies font styles to the selected text in a RichTextBox:
Code:
Public Sub AddFontStyle(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, and just add 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 count As Integer
For count = 0 To selLength - 1
' select 1 char
rtb.Select(selStart + count, 1)
' get the font of the selected char
currFont = rtb.SelectionFont
' get the current style of this char, and add the
' specified style
currStyle = currFont.Style
currStyle = currStyle Or style
' create and assign to the char a new font
' with the new style this may throw an exception,
' is the current font family does not support
' the specified style, so handle this possible situation
Try
rtb.SelectionFont = New Font(currFont.FontFamily, currFont.Size, _
currStyle)
Catch ex As Exception
End Try
Next
' reselect the original selection
rtb.Select(selStart, selLength)
Else
rtb.SelectionFont = New Font(rtb.SelectionFont, _
rtb.SelectionFont.Style Or style)
End If
End Sub
(Not mine i might add :p )
This takes into account styles already applied, (so you can have, for example, bold and italic)
The trouble is that it doesn't remove the style, I have a bold button and want it so that it's a toggle (bold on, bold off...), I have the button part worked out
Code:
Private Sub butBold_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butBold.Click
If textbold = False Then
AddFontStyle(rtbSectionText, FontStyle.Bold)
textbold = True
Else
AddFontStyle(rtbSectionText, FontStyle.Regular)
textbold = False
End If
rtbSectionText.Focus()
MessageBox.Show("Textbold = " & textbold)
End Sub
But the text just stay's bold! Does anyone have any ideas? NOTE: I have already set textbold to false.