public string ConvertRtbToHTML(RichTextBox rtb) { if (rtb.Text.Length == 0) return null; string html = ""; string color; string strChar; bool isBold; bool isItalic; string fontName; short size; int originStart = 0; int originLength = rtb.Text.Length; int count =0; rtb.Select(0, 1); color = ColorTranslator.ToHtml(rtb.SelectionColor); isBold = rtb.SelectionFont.Bold; isItalic = rtb.SelectionFont.Italic; fontName = rtb.SelectionFont.FontFamily.Name; size = (short)rtb.SelectionFont.Size; // Include first 'style' parameters in the HTML html += ""; // Include bold tag, if required if (isBold == true) html += ""; // Include italic tag, if required if (isItalic == true) html += ""; // Finally, add our first character html += rtb.Text.Substring(0, 1); // Loop around all remaining characters for(count = 2 ;count <= rtb.Text.Length;count++) { // Select current character rtb.Select(count - 1, 1); strChar = rtb.Text.Substring(count - 1, 1); switch (strChar) { case "\n": // If this is a line break, add HTML tag html += ""; break; case "\t": html += " "; strChar = ""; break; case " ": html += " "; strChar = ""; break; case "<": html += "<"; strChar = ""; break; case ">": html += ">"; strChar = ""; break; case "&": html += "&"; strChar = ""; break; } // Check/implement any changes in style if (rtb.SelectionColor.ToKnownColor().ToString() != color || rtb.SelectionFont.FontFamily.Name != fontName || rtb.SelectionFont.Size != size) html += ""; // Check for bold changes if (rtb.SelectionFont.Bold != isBold) { if (rtb.SelectionFont.Bold == false) html += ""; else html += ""; } // Check for italic changes if (rtb.SelectionFont.Italic != isItalic) { if (rtb.SelectionFont.Italic == false) html += ""; else html += ""; } // Add the actual character html += strChar; //box.Text.Substring(intCount-1, 1); // Update variables with current style color = rtb.SelectionColor.ToKnownColor().ToString(); isBold = rtb.SelectionFont.Bold; isItalic = rtb.SelectionFont.Italic; fontName = rtb.SelectionFont.FontFamily.Name; size = (short)rtb.SelectionFont.Size; } // Close off any open bold/italic tags if (isBold == true) html += ""; if (isItalic == true) html += ""; // Terminate outstanding HTML tags html += ""; //