2015-07-28 1 views
1

Я создал форму для создания билета. Текст сообщения был в одном Richtextbox. LongText отправляется в webrequest как String. Поскольку я строю длинный текст из трех Richtextboxes, форматирование разрывов строк (и только разрывов строк) нарушается.Строка, построенная из нескольких Richtextboxes, теряет формат

Теперь я изменил его на три коробки: - первый с приветственной фразой - основной, с вашим длинным текстом - последняя модель с «наилучшими пожеланиями» фразой

форма выглядит следующим образом:

Form-sample

проблема: создает строку, я хочу передать через malforms моей последнюю строку и я не знаю почему.

Я построю свою окончательную строку, как это:

 Dim MyFinstr as string = RTB1.text & vbnewline & 
vbnewline & RTB2.text & vbnewline & vbnewline & RTB3.text 

Моя последняя строка должна выглядеть следующим образом:

Hello mr Test, 

long text 1 
longtext line2 
long ipsum 

Best Regards 
Mr Blaze 

Вместо этого он всегда выглядит следующим образом:

Hello mr Test, 
long text 1 
longtext line2 
long ipsum 
Best Regards 
Mr Blaze 

Итак - как-то - когда строка построена из текстов 3 Richtexboxes он ломается.

Теперь самый запутанная часть: Если я не присваиваю содержание из richtextboxes в строку и сделать этого

AnoterRichtextbox.text = RTB1.text & vbnewline & 
vbnewline & RTB2.text & vbnewline & vbnewline & RTB3.text 
Dim MyFinstr as String = AnoterRichtextbox.text 

Тогда строка прекрасно и имеет разрывы строк в конец.

My грязный обходной путь - это невидимый четвертый богатый текст, который преобразует мою строку, чтобы выглядеть хорошо. Но я действительно не понимаю, почему это так.

Строки выглядят одинаково, если я скопирую их в буфер обмена и просмотрю в Notepad ++ с разрывами строк. Но - в конце - билет, созданный webrequest, сломал форматирование со строкой, которая не конвертируется из Richtextbox4.

У вас есть намек на то, что я наблюдаю? :)

+1

Мне очень жаль, но я не мог воспроизвести это поведение. Любая удача с использованием свойства 'Lines' типа' String.Join (Environment.NewLine, RTB1.Lines) '? Вам действительно нужно использовать элемент управления RTB? Обратите внимание, что окончание строк в элементе управления RTB: 'LF', а не' CRLF': http://stackoverflow.com/questions/24082742 –

+0

Я могу воспроизвести его, просмотрев также результат web-запроса, бит нечетный. В Notepad ++ он показал crlf как прерывание строки.Я буду тестировать его завтра и отчитываться :) –

+1

Поскольку вы не используете какой-либо конкретный RichText здесь, почему бы не использовать стандартный MultiLine TextBox? –

ответ

1

может вы должны выглядеть примерно ControlChars так:

RichTextBox1.Text = RichTextBox1.Text.Replace(ControlChars.Lf, ControlChars.CRLF) 
+0

Я сделал это преобразование со строкой «MyFinstr». Строка построена путем присоединения текстов Richtextbox и установки разрывов строк между ними. Однако это не меняет проблему форматирования. –

+0

попробуйте вручную использовать '&" \ r \ n "&', вместо 'vbnewline', может это сработает ... my virtualbasic немного ржавый ^^ Возможно, vbnewline проверяет последнюю строку, только если есть какие-то символы, тогда он будет делать новую строку ... печатать пробел '&" "&' на пустой строке, возможно, будет работать –

 Смежные вопросы

  • Нет связанных вопросов^_^