2017-02-22 27 views
2

У меня есть большая строка (20K строк * 100 символов каждый).Огромная строка в WinForm RichTextBox

Мне нужно поместить эту строку в RichTextBox (или любую аналогичную вещь) приложения форм Windows, в настоящее время для этого требуется 40 секунд (добавление самой строки занимает 40 секунд).

Вот фрагмент кода

StringBuilder sb = Very_big_String_Builder_Object; 
string appendMe = sb.ToString(); 
uniqueOutput.SelectionStart = uniqueOutput.TextLength; 
uniqueOutput.SelectedText = appendMe; 

Я также попытался

StringBuilder sb = Very_big_String_Builder_Object; 
string appendMe = sb.ToString(); 
uniqueOutput.Text = appendMe; 

который был немного худшего.

Есть ли что-нибудь в пределах .NET (до 4.5), которое может помочь?

+1

Почему вам нужно отобразить, что много информации за один раз? Никто не мог реально это прочитать. – Equalsk

+0

Вы хотите прочитать книгу, где каждая страница имеет 20000 строк? Конечно нет. Почему вы ожидаете этого от своих пользователей? Покажите только соответствующую часть, либо с поисковым вызовом, либо с фильтром. –

+0

ну, даже это выглядит странно, но пользователь возьмет его в еще несколько программ и файлов, которые обычно меняются. Я могу выводить в файл, но для их сохранения потребуется больше времени, чтобы сохранить файл, найти файл, открыть файл, а затем скопировать и вставить. также есть более одного вывода RichTextBox – TOMP

ответ

1

Попробуйте использовать TextBox с многострочной Истинным:

txtMulti.text = Very_big_String_Builder_Object.ToString; 
+1

Самое правильное решение, это сократило время до менее чем 2 секунд, но мне нужно было сделать слушателя для обработки CTRL + A нажмите – TOMP

+0

Горячие клавиши часто являются проблемой - проверьте другие элементы управления/контейнеры который может захватывать Ctrl-A. Меню "со стандартными элементами" часто всасывают управляющие клавиши. – rheitzman

1

Отключение WordWrap и DetectUrls, безусловно, сэкономит вам пару секунд.

+0

Это сократило время от 40 секунд в 30 ~ 35 секунд, хорошая рекомендация – TOMP