Первая часть довольно проста, как указал CK.
Форматирование расширенного текста диктуется определенными предопределенными кодами, как определено в спецификации RTF.
Сначала получите исходную строку RTF из элемента управления, используя свойство RTF
string rawString = richTextBox.Rtf;
Например: rtf для фразы «привет Бобби» будет выглядеть следующим образом. Это что-то вроде HTML, у вас есть теги, которые определяют форматирование.
"{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Microsoft Sans Serif;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs17 hello Bobby\\par\r\n\\par\r\n}\r\n"
Теперь предположим, что я хочу сделать фразу жирным, я бы установил свойство Rtf, заменив строку на
"{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Microsoft Sans Serif;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs17
\\b hello Bobby\\par\r\n\\par\r\n}\r\n"
Обратите внимание на \\ b перед фразой. Это код для выделения текста жирным шрифтом.
Чтобы выполнить это форматирование с использованием кода, найдите строку, которую вы хотите отформатировать (используя первую технику), и вставьте код rtf в требуемую позицию.
Надеюсь, это поможет.
Коды относятся к MSDN http://msdn.microsoft.com/en-us/library/aa140277.aspx
PS: версия Джеффа самая легкая. Эта версия дает вам бесконечный контроль. Если вы можете сделать что-то в WordPad, вы можете сделать то же самое, используя коды RTF.