[.net, winforms] Вопросы по выводу текста

durka82

Пишу приложение, которое должно выводить много разных текстовых данных, но как-то не очень получается.
1. Как сделать выделение цветом в текстовом поле? Ну или какое правильное текстовое поле использовать?
2. Как отобразить неотображаемые символы в TextArea?
3. До присвоения текста в TextArea ввод с клавиатуры работает, а после - нет. С чем это связано? Или это глюк?
4. Как сделать, чтобы все изменения поля меняли переменую? Соотв события есть только у ДатаБиндинга. Или только так оно и делается?
Пробовал использовать TextArea и RtfTextArea.
Во втором конечно можно все раскрасить, но не хочется привязываться к Rtf, да и механизм не очень понравился.

Dasar

нужен вывод или вывод+редактирование?
если только вывод, то генери html и выводи через компонент htmlbrowser.
либо смотри в сторону wpf

klyv

А ты на каком таком языке пишешь? Насколько я понимаю, тебе вполне хватит RichTextBox'а.
Чтобы в любой момент получить текст на контролле используй richTextBox1.Text или привяжи databinding'ом это поле к любой своей переменной (что, по-моему, совсем ненужно или обработай событие TextChanged.
Не бойся приставки Rich - никто тебя не заставляет при этом использовать именно Rtf :)

durka82

нужен вывод или вывод+редактирование?
И то, и другое.
То есть есть контролы, где только вывод, но есть и с возможностью ввода.
если только вывод, то генери html и выводи через компонент htmlbrowser.
В смысле WebBrowser?
wpf
А он тоже только под вистой работает?

klyv

используй RichTextBox - это проще гораздо

durka82

А ты на каком таком языке пишешь?
C#
Но это разве важно?
Чтобы в любой момент получить текст на контролле используй richTextBox1
Так если я получу richTextBox1.Text, изменю его и присвою обратно, форматирование сбросится или нет? А если править сам richTextBox1.Text?
Не бойся приставки Rich - никто тебя не заставляет при этом использовать именно Rtf :)
Если выбирать между rtf и html, то последний по крайней мере рассчитан на правку кода

Dasar

> В смысле WebBrowser?
да
> А он тоже только под вистой работает?
работает и на xp

durka82

Пример в msdn, который я нашел, предполагает правку типа Выделил-Изменил.
Это единственный способ работы с RichTextBox ?
Или есть другие?
Например с DOM-ом документа в RichTextBox работать можно?

klyv

Выделил-Изменил
А чем это плохо?...
Если надо будет созранить текущую позицию - пожалуйста, сохраняй перед изменениями и восстанавливай.

durka82

А чем это плохо?
Если документ уже есть и с ним просто нужно работать в интерактивном режиме - все хорошо :)
Но у меня есть контролы, куда текст попадает после жестокого парсинга :grin:
То есть он все равно формируется из частей и разумно его сразу и форматировать.
А то потом по второму разу парсить придется :(
Или с RichTextBox можно нормально работать, добавляя по частям текст, форматируя добавленное, опять добавляя и форматируя?

klyv

поглядел я на этот rtf....
если только цвет нужен, то там халява совсем :)
{\rtf1
{\colortbl ;\red255\green0\blue0;\red255\green255\blue0;}
A\cf1 B\cf0 C\cf2 D
}
и у тебя A чёрная, B красная, C чёрная, D жёлтая, "\cf_" - переключатель текущего цвета.
так что вставить туда раскрашенный текст - не проблема (через св-во Rtf)
достать оттуда его мб, сложнее, но если не шибко вникать, то можно просто игнорировать все последовательности \xxx, концом считая пробел или \, кроме \cf и \colortbl - и будет вселенское счастье :)
Оставить комментарий
Имя или ник:
Комментарий: