2014-06-09 3 views
1

Я делаю для себя небольшое приложение, которое объединяет некоторые утверждения на основе текста, который вводится в пару богатых текстовых полей в форме.Чтение строк текста из богатого текстового поля

В одном текстовом поле может быть 10-20 строк текста, и каждая строка - это отдельная запись, поэтому мне нужно иметь возможность читать текст по строкам.

Однако, изучая WPF, я видел только одно заявление в сети относительно чтения текста, и он читает содержимое коробки от начала до конца. Я хотел бы как-то пропустить его или разделить по очереди.

Согласно MSDN, для извлечения текста из богатого текстового поля WPF в строку, вам нужно использовать:

string StringFromRichTextBox(RichTextBox rtb) 
{ 
    TextRange textRange = new TextRange(
     // TextPointer to the start of content in the RichTextBox. 
     rtb.Document.ContentStart, 
     // TextPointer to the end of content in the RichTextBox. 
     rtb.Document.ContentEnd 
    ); 

    // The Text property on a TextRange object returns a string 
    // representing the plain text content of the TextRange. 
    return textRange.Text; 
} 

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

000423523 

324 

93489290099 

823342342 

0003242342 

44400298889 

Я хочу, чтобы иметь возможность читать эти значения построчно в пределах RichTextBox, но в WPF, там Безразлично» t выглядит как опция richtextbox1.Lines.

+1

Почему бы не прочитать все содержимое, а затем проанализировать это по строкам? –

+0

Можете ли вы включить то, что вы пробовали до сих пор, и почему он не работает для вас? –

+0

Отредактировано для пояснений. – user3494110

ответ

0

К сожалению, для краткости, но как о чем-то же просто, как

var lines = richTextBox1.Text.Split('\n'); 
1

Вы можете использовать String.Split() метод для разделения RichTextBox текста на разрыве строки и исключить пустые строки из результирующего набора, например:

String[] lines = 
     StringFromRichTextBox(rtb).Split(new[]{Environment.NewLine} 
              , StringSplitOptions.RemoveEmptyEntries); 

foreach (var line in lines) 
{ 
    MessageBox.Show(line); 
} 
+0

- это StringFromRichTextBox, который можно использовать в WPF? Кажется, я не могу разобраться в этом. – user3494110

+0

Хм .. это должен быть ваш метод :) – har07

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