Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > C# - .NET 4.x Генерация текста


Автор: Tketano 21.11.2014, 20:42
Добрый вечер, господа smile 

Есть вопрос касательно WinForms. Появилась необходимость генерировать динамический текст (readonly) и отображать его на форме. При этом в тексте могут быть использованы:
  • Русские и английские буквы, цифры, пунктуация
  • Стили (жирный, курсив)
  • Различные цвета (текста)
  • Ссылки

Вопрос в том, как это лучше сделать? Генерировать контролы - не вариант.
Присмотрелся к RichTextBox... в целом функционал есть, но генерировать rtf тот еще геморрой. Лично для меня 

Может что упустил?)

Автор: diadiavova 21.11.2014, 22:33
WebBrowser ?

Автор: Tketano 22.11.2014, 00:51
Цитата(diadiavova @ 21.11.2014,  22:33)
WebBrowser ?

Хм... Как html документ? А пример есть?

Автор: diadiavova 22.11.2014, 02:47
Такой пример подойдёт?
http://msdn.microsoft.com/ru-ru/library/system.windows.forms.webbrowser.documenttext(v=vs.110).aspx

Автор: Tketano 22.11.2014, 13:35
Цитата(diadiavova @ 22.11.2014,  02:47)
Такой пример подойдёт?
http://msdn.microsoft.com/ru-ru/library/system.windows.forms.webbrowser.documenttext(v=vs.110).aspx

Спасибо! Вечером попробую сгенерировать текст в формате html и выгрузить в WebBrowser. Опасаюсь только какого-то специфического поведения контрола.
Если у кого-то есть еще мысли - кидайте smile

Автор: diadiavova 22.11.2014, 18:45
Цитата(Tketano @  22.11.2014,  13:35 Найти цитируемый пост)
Опасаюсь только какого-то специфического поведения контрола.

Ну такое бывает, но в твоем случае этого вполне можно избежать. Как правило неприятности случаются когда контрол используется для просмотра сайтов, там иногда на самих страницах может оказаться что-то, из-за чего контрол поведет себя непредсказуемо. Но здесь контент ты создаешь сам, так что все от тебя зависит. Ну и настроить его надо, типа там отключить стандартное контекстное меню, окно ошибок сценариев и т. д.
Цитата(Tketano @  22.11.2014,  13:35 Найти цитируемый пост)
Если у кого-то есть еще мысли - кидайте

Здесь весь вопрос в том, что ты можешь использовать и чего не можешь. В принципе эта задача вполне решается без каких-либо костылей в WPF, так что есть вариант для винформ - захостить WPF-контрол (если испоьзование винформ вообще принципимльно). Не подходит этот вариант, можно опять-таки использовать библиотеки WPF, но только уже для генерации rtf, уж коль скоро по каким-то причинам тебе его трудно самому генерить(хотя учитывая тот минимум требований, что ты описал, можно было бы и заморочиться). Можно попробовать приделать костыль к рипортвьюеру, но не знаю, как это получится. В принципе, в описанных условиях веббраузер - идеальный вариант: возможности ограничены только фантазией, реализация несложная, да и HTML/CSS/JS, хотя бы на базовом уровне наверняка знаешь и ничего дополнительно учить не надо. Так что это вполне себе вариант.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)