Assume you're using VB.NET 2.0 (2005).
The .Font property is of type System.Drawing.Font. The .ToString function gathers many of the fonts properties and places them into a string. You would have to use quite a bit of code to split this string up, and write its properties. Are you after the specific font including all its properties (eg. Bold, Font-Size, etc...) or just the font name?
If its just the font name you need, simply save:
RichTextBox.Font.FontFamily.Name
in the database, then reconstruct it using:
RichTextBox.Font = New Font(savedfont, 12)
Where 12 is an arbitary font size.
You could save several of the important font settings in different columns (such as FontFamily, Size, Style)
Otherwise you would need to use the following use the String.Split to split the "," and "=" characters. Then contruct your font using the "New Font(your variables here)" syntax.
Of course another method might be to use serialization (where an object is converted to binary or string format), but unfortunitly XML serialization wont directly work with this example (as the Font class doesn't have a parameter-less constructor.
Another simple way might be to create your own (easy to un-crypt) string (similar to Serializing, but customised):
'' Saving font from Me.RichTextBox1.Font
Dim strSavedFont As String
With Me.RichTextBox1.Font
strSavedFont = String.Format("{0},{1},{2},{3},{4}", New Object() {.FontFamily.Name.ToString, .Size.ToString, Convert.ToInt32(.Style), Convert.ToInt32(.Unit), .GdiCharSet.ToString})
End With
MsgBox(Me.RichTextBox1.Font.ToString)
'' Save strSavedFont to Database
'' Database Code HERE
'' Load strSavedFont from Database
Dim objReturnedFont As Font
Dim strFontValues() As String = strSavedFont.Split(",")
objReturnedFont = New Font(strFontValues(0), strFontValues(1), Convert.ToInt32(strFontValues(2)), Convert.ToInt32(strFontValues(3)), Convert.ToByte(strFontValues(4)))
MsgBox(objReturnedFont.ToString)
'' objReturnedFont is identical to the origional font