Поскольку вам придется анализировать код для форматирования, я бы не делал этого из самого текстового поля.Я бы скопировал все содержимое текстового поля в строку и прочитал символы из строки.Это связано с тем, что взаимодействие с любым элементом управления добавляет еще один уровень сложности для самой программы.Вместо того, чтобы обращаться к переменной String для непосредственного получения символа, вам нужно сначала получить доступ к элементу управления Textbox, который затем обращается к его внутреннему представлению текста, чтобы получить символ.Это дополнительный шаг, и для больших объемов текста он замедлит работу вашего приложения.
Чтобы выполнить фактический анализ и форматирование, вы можете написать свой собственный токенизатор и форматтер или использовать уже созданный.Я также не могу предложить большую помощь, но, к сожалению, это не так просто, как просто отслеживание скобок.Взгляните на Sourceforge или похожие сайты;у них могут быть средства форматирования, которые вы можете изучить, чтобы помочь вам создать свой собственный.