0 / 0 / 0
Регистрация: 09.04.2016
Сообщений: 2
|
||||||
1 | ||||||
Выделение текста при постоянном добавлении текста в RichTextBox01.08.2018, 02:38. Показов 2484. Ответов 3
Делаю программу которая получает данные по Serial порту и выводит их в RichTextBox. Проблема у меня заключается в том, что когда данные пишутся в RichTextBox я не могу выделить нужный мне текст, так как курсор сразу перемещается в самое начало. Если я отключу соединение, то могу выбрать нужный мне текст. Хотелось бы сделать так, чтобы при получении данных я мог без проблем выделить уже полученный текст. Вывод текста работает по методу сложения строки. Я думаю что проблема заключается в том что при получении данных строка пересоздаётся и заново выводится в RichTextBox , то как сделать иначе я решения так и не нашёл.
0
|
01.08.2018, 02:38 | |
Ответы с готовыми решениями:
3
Обновление RichTextBox, при добавлении текста Как сохранить выделение в RichTextBox текста в при нажатии на Combobox? При добавлении текста в Word часть добавляемого текста сделать жирным Выделение текста в RichTextBox |
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
|
||||||
01.08.2018, 03:29 | 2 | |||||
В любом случае при обновлении информации в RichTextBox он будет перерисовываться и скидывать выделенный текст. Так что тут без вариантов...
Конкатенация строк - далеко не самый лучший вариант. Т.к. память будет съедаться моментально... Если хотите использовать конкатенацию, то используйте лучше StringBuilder, иначе можете столкнуться с проблемой нехватки памяти. Если получение новых строк происходит не очень быстро и каждая строка записывается в текстбокс как новая, могу предложить такой вариант:
Добавлено через 2 минуты При частоте обновления выше 200 мс работает. при меньшем уже практически нет... В идеале, частота обновления должна быть не меньше 500 мс. Добавлено через 2 минуты И, разумеется, вместо буфера обмена можно использовать обычную переменную... Добавлено через 9 минут Кстати, частоту обновления строк можно искусственно увеличить, записывая новые строки не напрямую в текстбокс, а в List<string> и обновляя строки в текстбоксе при каждой, к примеру, 5-й или 10-й... Ну или по таймеру...
0
|
716 / 473 / 258
Регистрация: 19.12.2014
Сообщений: 1,801
|
||||||
01.08.2018, 06:10 | 3 | |||||
Ну будет 2 секунды к примеру все равно не поможет. Пока докрутишь список до середины.. он раз и в начало опять прыгнет.
Я бы предложил свой вариант. Нажимаем кнопку Ctrl и вывод перенаправляется в буфер. Пока держите нажатой кнопку Ctrl можно выделять текст и вызывать контекстное меню для копирования. После отпускания Ctrl буфер скидывается в RichTextBox и данные продолжают добавляться напрямую в RichTextBox. И так до следующего нажатия Ctrl.
1
|
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
|
|
01.08.2018, 06:49 | 4 |
Тут расчет был на то, что в текстбоксе будет автоскролл и на виду будут последние значения, которые, собственно, и представляют интерес... Если нужно по списку перемещаться, то, конечно, ничего не получится. Согласен.
Интересное решение! Поддерживаю! Добавлено через 4 минуты Тогда, на мой взгляд, удобнее было бы не при нажатом Ctrl это делать, а контролом переключать назначение вывода. Т.е. раз нажал - вывод в текстбокс прекратился и можно спокойно выделять, еще раз нажал - вывод идет в текстбокс. Ну, это мое личное мнение. Мне бы так удобнее было. Но, как говорится, на вкус и цвет все фломастеры разные.
0
|
01.08.2018, 06:49 | |
01.08.2018, 06:49 | |
Помогаю со студенческими работами здесь
4
Простое выделение текста в RichTextBox Поиск и выделение текста в RichTextBox Выделение текста разным цветом в RichTextBox Выделение текста в richTextBox из другой формы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |