Marcin Bednarek Ответов: 1

Vb.net проблема с линиями richtextbox


У меня есть 4 строки текста в RTF из Microsoft Word

Первая строка текста.
Вторая строка текста.
Третья строка текста.
Четвертая строка текста.


У меня также есть код для генерации текста из каждой строки в консоль:

rtb = New RichTextBox
rtb.Rtf = My.Computer.Clipboard.GetText(TextDataFormat.Rtf)
Dim linesCount As Integer = rtb.Lines.Count
For i = 0 To linesCount - 1
    Dim start As Integer = rtb.GetFirstCharIndexFromLine(i)
    Dim currLine As Integer = rtb.GetLineFromCharIndex(start)
    Dim currLineText As String = rtb.Lines(currLine)
    Dim length As Integer = currLineText.Length

    rtb.Select(start, length)
    Debug.Print(rtb.SelectedText)
Next


И это моя проблема.

В то время как я использую динамически созданный RichTextBox (как указано выше) Я получаю странный результат

Первая строка текста.
текст.
Вторая линия
Вторая строка текста
текст.
Третья линия


Но когда я переключаюсь с помощью RichTextBox1, созданного на Form1, я получаю то, что я ожидал.

Form11.RichTextBox1.Rtf = My.Computer.Clipboard.GetText(TextDataFormat.Rtf)
Dim linesCount As Integer = Form11.RichTextBox1.Lines.Count
For i = 0 To linesCount - 1
    Dim start As Integer = Form11.RichTextBox1.GetFirstCharIndexFromLine(i)
    Dim currLine As Integer = Form11.RichTextBox1.GetLineFromCharIndex(start)
    Dim currLineText As String = Form11.RichTextBox1.Lines(currLine)
    Dim length As Integer = currLineText.Length

    Form11.RichTextBox1.Select(start, length)
    Debug.Print(Form11.RichTextBox1.SelectedText)
Next


Первая строка текста.
Вторая строка текста.
Третья строка текста.
Четвертая строка текста.


Есть идеи, почему это происходит? Я бы предпочел использовать динамически создаваемый RichTextBox в своем сценарии.

Что я уже пробовал:

Не знаю, что здесь писать :)

1 Ответов

Рейтинг:
4

CHill60

Вы не задали ширину динамически создаваемого RichTextBox, поэтому он переносит текст. Попробуйте установить rtb.Width к тому же значению, что и в вашем RichTextBox1


Marcin Bednarek

Ах, никакой ширины, но в моем случае лучший подход-установить WordWrap в False. Но твоя идея исправила мою проблему. Большое спасибо!

CHill60

С удовольствием!