Страница: 1 |
Страница: 1 |
Вопрос: RTB via TextBox, vbCrLf
Добавлено: 08.02.08 07:06
Автор вопроса: Дилетант
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox1.Text = RTB1.Text
End Sub
Результат:
Ехали[]медведи[]на[]велосипеде
(с vbNewLine и Chr(13) + Chr(10) то же самое)
Вопрос: что надо делать, чтобы копировалось адекватно?
Примечание: из контрола RTB VB6 копируется нормально, но там есть другие заморочки, которые мне не нужны.
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #1
Добавлено: 08.02.08 07:07
MultiLine у текстбокса?
Номер ответа: 2
Автор ответа:
Дилетант
Вопросов: 13
Ответов: 30
Профиль | | #2
Добавлено: 08.02.08 07:09
Есессно
Номер ответа: 3
Автор ответа:
Skywalker
ICQ: 300-70-6пятьЪ
Вопросов: 62
Ответов: 545
Web-сайт:
Профиль | | #3
Добавлено: 08.02.08 09:14
как насчет
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
RichTextBox1.Text = "Ехали" & vbCrLf & "медведи" & vbCrLf & "на" & vbCrLf & "велосипеде"
TextBox1.Lines = RichTextBox1.Lines
End Sub
Номер ответа: 4
Автор ответа:
Дилетант
Вопросов: 13
Ответов: 30
Профиль | | #4
Добавлено: 08.02.08 23:03
Спасибо. Ваш пример работает, но мне он помог не до конца. Попробую объяснить, что мне действительно нужно.
У меня редактор HTML на базе RTB. RTB нужен для подсветки тэгов и объёма текста (иногда я запускаю туда целый роман). В VB6 возникли проблемы с юникодом (диакритические знаки в иностранных языках), и я переделываю это в VB.NET, где юникод правильный, а заодно начинаю осваивать эту версию, поскольку жареный петух уже клюнул.
(Возможный встречный вопрос: почему бы мне не использовать готовый редактор HTML?
Отвечаю: в каком редакторе можно выделить целую главу, нажать кнопочку - и все абзацы окажутся в аккуратненьких <p>? Где можно выделить французский или, там, исландский текст - и все левые буквы превратятся в нужные &#номера;? (Правда, пока это отдельная утилита, чтобы её встроить, я и затеял переписку в VB.NET.) Там ещё много таких мелких, но удобных примочек типа быстрого "окучивания" таблиц и списков. Кое-что планируется - например, редактор javascript со шпаргалками - почти как VB. А главное - всё в одном флаконе, максимально удобном лично мне).
Так вот, в VB.NET все мои процедуры правильно работают только в TextBox (плакала подсветка, плакали романы, плакало визуальное удобство установки <em> и <strong>. Пример с медведями я выдумал для тестирования различий этих контролов.
Если поставить в форму невидимый TextBox и перегонять Lines туда, а потом обратно, то работает тотальное форматирование всего текста, а с выделением начинается лажа.
Вот только что я экспериментально установил, что визуально одинаковый SelectedText имеет разную длину в RTB и TextBox, а именно: в TextBox перенос строки занимает 2 символа, а RTB - один.
То есть:
бля
бля
бля
RTB1.SelectionLength = 11 (4+4+3)
Text1.SelectionLength = 13 (5+5+3)
Вопрос: что за хреновину нужно использовать в RTB на VB.NET для определения и программирования новой строки (вместо vbCrLf и пр.)? Или как-то работать с массивом Lines? А у меня пока всё завязано на функцию Replace().
Номер ответа: 5
Автор ответа:
BUMM ®
Вопросов: 8
Ответов: 482
Профиль | | #5
Добавлено: 08.02.08 23:40
ControlChars.CrLf
и без матов
Номер ответа: 6
Автор ответа:
Дилетант
Вопросов: 13
Ответов: 30
Профиль | | #6
Добавлено: 09.02.08 04:32
ControlChars.CrLf работает точно так же, как и vbCrLf. Те же глюки и та же разница в SelectionLength. Проштудировал, что пишет по этому поводу MSDN... Ничего не пишет. Или это нужно искать в каких-то экзотических разделах.
Номер ответа: 7
Автор ответа:
Дилетант
Вопросов: 13
Ответов: 30
Профиль | | #7
Добавлено: 09.02.08 08:01
ВСЁ ПОНЯЛ!!!
В RTB перенос строки только Chr(10), без 13-ти.
Тогда всё работает и без перегонки в TextBox/
Номер ответа: 8
Автор ответа:
Вопросов: 1
Ответов: 2
Профиль | | #8
Добавлено: 31.10.09 15:29
кук