Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 17.12.2013
Сообщений: 8

Снятие выделения в RichTextBox

17.12.2013, 12:19. Показов 4727. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Делаю в richTextBox при изменении текста подсветку синтаксиса следующим образом:

C#
1
2
3
4
5
6
7
8
9
10
11
string[] keyWords = { "if", "else", "for", "string ", "float " };
            foreach (string key in keyWords)
            {
                MatchCollection allKeyWords = Regex.Matches(richTextBox1.Text, key);
                foreach (Match findKeyWord in allKeyWords)
                {
                    richTextBox1.SelectionStart = findKeyWord.Index;
                    richTextBox1.SelectionLength = findKeyWord.Length;
                    richTextBox1.SelectionColor = Color.Navy;
                }
            }
Проблема в том, что после этого весь текст ричтекстбокса оказывается выделенным синим цветом. Подскажите, пожалуйста, убрать это выделение, мешающее вводить символы в richTextBox?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.12.2013, 12:19
Ответы с готовыми решениями:

Снятие выделения в checkedListBox
доброго времени суток. Подскажите, при снятии выделения обрабатывается событие checkedListBox3_SelectedIndexChanged. Как проверить...

richTextBox отмена выделения текста
Доброго времени суток ! Подскажите пожалуйста у richTextBox есть какое - нибудь свойство или еще может быть что - нибудь , что позволяет...

Блочный стиль выделения RichTextBox/TextBox
Привет форумчане. Есть пару вопросов: 1. Возможно ли на WinForms сделать такой стиль выделения? 2. Если да, то каким способом? ...

8
208 / 164 / 29
Регистрация: 11.09.2013
Сообщений: 445
17.12.2013, 12:56
в стандартном поведении контрола нет нескольких выделений, только одной, поэтому Ваш метод работать не будет. поможет только разработка своего контрола

что касается RegExp - не помогу, простите = )
0
0 / 0 / 0
Регистрация: 17.12.2013
Сообщений: 8
17.12.2013, 13:02  [ТС]
Цитата Сообщение от sezada Посмотреть сообщение
в стандартном поведении контрола нет нескольких выделений, только одной, поэтому Ваш метод работать не будет. поможет только разработка своего контрола

что касается RegExp - не помогу, простите = )
Смотрите, текст раскрашивается правильно. Просто после раскраски остаётся синее выделение, как будто нажали CTRL+A. Вот от него-то и нужно избавиться.
0
208 / 164 / 29
Регистрация: 11.09.2013
Сообщений: 445
17.12.2013, 13:23
Цитата Сообщение от aiaiyai Посмотреть сообщение
текст раскрашивается правильно
хм, действительно. тогда вот:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
            int a = richTextBox1.SelectionStart;
            string[] keyWords = { "if", "else", "for", "string ", "float " };
            foreach (string key in keyWords)
            {
                MatchCollection allKeyWords = Regex.Matches(richTextBox1.Text, key);
                foreach (Match findKeyWord in allKeyWords)
                {
                    richTextBox1.SelectionStart = findKeyWord.Index;
                    richTextBox1.SelectionLength = findKeyWord.Length;
                    richTextBox1.SelectionColor = Color.Navy;
                }
            }
            richTextBox1.SelectionStart = a;
            richTextBox1.SelectionLength = 0;
            richTextBox1.SelectionColor = richTextBox1.ForeColor;
0
0 / 0 / 0
Регистрация: 17.12.2013
Сообщений: 8
17.12.2013, 13:43  [ТС]
сейчас попробуем - нет, к сожалению, не помогло
0
208 / 164 / 29
Регистрация: 11.09.2013
Сообщений: 445
17.12.2013, 14:10
у меня работает корректно. может, другие места в программе мешают? у меня это в TextChanged. это, и больше ничего. попробуйте в чистом проекте, затем добавляйте по одной фукции из Вашего проекта, чтобы найти место, которое все ломает
0
0 / 0 / 0
Регистрация: 17.12.2013
Сообщений: 8
17.12.2013, 14:39  [ТС]
Цитата Сообщение от sezada Посмотреть сообщение
у меня работает корректно. может, другие места в программе мешают? у меня это в TextChanged. это, и больше ничего. попробуйте в чистом проекте, затем добавляйте по одной фукции из Вашего проекта, чтобы найти место, которое все ломает
Да, действительно, выделение пропало, спасибо большое, только теперь после ввода нового символа курсор перетаскивается в начало текстбокса, что затрудняет ввод.
0
208 / 164 / 29
Регистрация: 11.09.2013
Сообщений: 445
17.12.2013, 14:41
не перетаскивается. для этого я перед началом всех действий сохраняю его положение (selectionstart), а после конца - возвращаю на место
0
0 / 0 / 0
Регистрация: 17.12.2013
Сообщений: 8
17.12.2013, 14:46  [ТС]
Цитата Сообщение от sezada Посмотреть сообщение
не перетаскивается. для этого я перед началом всех действий сохраняю его положение (selectionstart), а после конца - возвращаю на место
Ещё немного исправил и заработало. Премного благодарен!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.12.2013, 14:46
Помогаю со студенческими работами здесь

Копировать диапазон выделения из одного RichTextBox в другой
Друзья на форме расположено два компонента RichTextBox. В одном текст в виде ASCII-символов, во втором - HEX. Выделяя фрагмент...

Как прописать цикл foreach для чтения и выделения текста в richTextBox?
Есть код: try { string str1 = richTextBox1.Lines.ToArray(); for (int i =...

При любой смене размера richTextBox-а растянуть текст на весь richTextBox
есть richTextBox нужно вывести текст и при любой смене размера richTextBox растянуть этот текст на весь richTextBox. текст может быть любой...

Специальные символы в RichTextBox не учитываются при передаче в другой RichTextBox
Если мы зададим richTextBox1.Text = "123\n123"; мы увидим 123 123 но если мы зададим этот же текст из другого...

Передача данных из richTextBox одной формы на richTextBox другой формы
Здравствуйте, подскажите пожалуйста как сделать чтоб данные с richTextBox4 формы Form1 передавались на richTextBox4 формы Form2 (здесь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru