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

Поиск в richtextbox: реализовать функцию "искать далее"

15.10.2012, 17:04. Показов 3660. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Пытаюсь сделать поиск текста в Richtextbox.
нашел в интернете вот такой код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
        private void f(int i)
        {
            string s = richTextBox1.Text, s2 = textBox1.Text;
            if (checkBox1.Checked)
            {
                s = s.ToLower();
                s2 = s2.ToLower();
            }
 
            if (s.Contains(s2))
            {
                i = s.IndexOf(s2, i);
                if (i == -1)
                    i = s.IndexOf(s2, 0);
 
                richTextBox1.Select(i, s2.Length);
                richTextBox1.Focus();
            }
        }
 
        //найти
        private void button1_Click(object sender, EventArgs e)
        {
            f(richTextBox1.SelectionStart);
        }
 
        //след.
        private void button2_Click(object sender, EventArgs e)
        {
            f(richTextBox1.SelectionStart + textBox1.Text.Length);
        }
Но хотелось бы с одной кнопкой искать далее. а не с двумя как это сделано...
и что бы выделялись все слова в тексте
Подскажите как, только если можно с комментариями... Спасибо.
В интернете инфа есть но она или не подходит или не работает/
А еще хотелось бы организовать интерфейс поиска и замены текста, подскажите как.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.10.2012, 17:04
Ответы с готовыми решениями:

RichTextBox: поиск в тексте и переход далее
Доброго времени суток, проблемка такая: сделал поиск строк в richTextBox и выделение найденного цветом string NeedFind = textBox1.Text; ...

Реализовать поиск в RichTextBox с помощью Foreach
Доброго времени суток. Хотел бы задать маленький вопрос. Как можно оформить поиск в RichTextBox с помощью Foreach? Добавляю маленький...

Реализовать поиск как функцию
Заданы два массива: строк с фамилиями работников предприятия и их зарплат. Пользователь вводит искомую зарплату и получает на дисплее...

4
 Аватар для DimanRu
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
15.10.2012, 19:00
Я считаю, вам стоит воспользоваться регулярными выражениями!

Вот:
C#
1
2
3
4
5
6
7
8
9
10
11
private void button1_Click(object sender, EventArgs e)
{
    Regex reg = new Regex(textBox1.Text); //textBox1 - поле для ввода искомого текста
    MatchCollection match = reg.Matches(richTextBox1.Text);
 
    foreach (Match mat in match)
    {
        richTextBox1.Select(mat.Index, mat.Length);
        richTextBox1.SelectionBackColor = Color.Red;
    }
}
0
5 / 5 / 0
Регистрация: 08.07.2011
Сообщений: 120
16.10.2012, 15:30  [ТС]
Так то вроде ни чего, подсвечивает все слова, но потом после выделения получает дальше печатает красным. И как бы так сделать что бы он выделял следующие найденные слова именно выделял...
пробовал подставить Select , выделяет только последнее найденное слово.
0
 Аватар для DimanRu
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
16.10.2012, 17:36
Что бы выделял при наборе, нужно весь этот код переносить в событие изменения текста:
C#
1
2
3
4
5
6
7
MatchCollection match = reg.Matches(richTextBox1.Text);
 
foreach (Match mat in match)
{
    richTextBox1.Select(mat.Index, mat.Length);
    richTextBox1.SelectionBackColor = Color.Red;
}
А что бы вновь написанное не выделяло красным, добавьте после этих строк:
C#
1
richTextBox1.SelectionBackColor = Color.White;
1
1 / 1 / 0
Регистрация: 13.05.2013
Сообщений: 59
30.05.2013, 15:26
Всем доброго времени суток. Вот в данных примерах в результате поиска выделяется определенный символ, а как сделать так: Чтобы при нахождении символа выделялась вся строка в которой нашелся этот символ. Помогите пожалуйста это реализовать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.05.2013, 15:26
Помогаю со студенческими работами здесь

Реализовать функцию, осуществляющую поиск в вещественном массиве
Реализовать функцию, осуществляющую поиск в вещественном массиве элемента наиболее близкого к заданному числу. В качестве параметров...

Поиск в базе данных (поиск далее)
Добрый вечер! Нужна ваша помощь. Делаю поиск по базе, использую компонент AdoTable. В базе есть Одинаковые строки, нужно чтобы при нажатии...

Как сделать "Найти далее" в richtextbox.find?
Поиск происходит через switch,а именно : *** while (index < richTextBox1.Text.LastIndexOf(searchtxt.Text)) { ...

Реализовать запись и чтение и так далее
Написать программу реализующую запись и чтение информации из текстового файла. В программе должно быть предусмотренно цифровое меню со...

Реализовать функцию, осуществляющую поиск в вещественном массиве второго максимального элемента
Реализовать функцию, осуществляющую поиск в вещественном массиве второго максимального элемента. Массив и его размер передаются в качестве...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Номеклатура. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru