Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> RichTextBox, метод Find не подсвечивает текст 
V
    Опции темы
lanic
Дата 12.6.2009, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 7.6.2009

Репутация: нет
Всего: нет



Пишу текстовый редактор на C#. Возникла проблема с реализацией функции поиска текста. Есть основная форма, в которой находится RichTextBox и еще одна - форма куда вводится текст для поиска. В конструктор формы поиска при ее создании передается ссылка на основную форму, в которой реализован селектор для RichTextBox'a. Проблема в том, что при нахождении текста в RichTextBox'e, этот текст не выделяется в то время, когда форма поиска открыта, только после её закрытия видно, что поиск сработал - выделенным остается последний найденный фрагмент. Вот реализация формы поиска:

 
Код

public partial class FindForm : Form
    {
        private static Form1 owner; 
        private int start; 
        public FindForm(Form1 own, int a)
        {
            InitializeComponent();
            owner = own;
            start = a;            
        }
        public string FindText
        {
            get { return txtFind.Text; }
            set { txtFind.Text = value; }
        }
        public RichTextBoxFinds FindCondition
        {
            get
            {
                
                //Выбран один чекбокс
                if (cbMatchCase.Checked)
                {
                    // Возвращаем свойство MatchCase
                    return RichTextBoxFinds.MatchCase;
                }
                //Не выбран ни один чекбокс
                return RichTextBoxFinds.None;
            }
        }

        private void btnFindNext_Click(object sender, EventArgs e)
        {                       
            
                if (start < owner.getRTB.Text.Length)
                {
                    owner.getRTB.Find(this.FindText, start, this.FindCondition);
                    //owner.getRTB.Select(owner.getRTB.SelectionStart, txtFind.Text.Length);
                    start = owner.getRTB.SelectionStart + txtFind.Text.Length;
                    
                }
             
         }

getRTB - селектор RicgTextBox'a основной формы
Подскажите в чем проблема, что реализовано не так, и возможные пути решения. Спасибо.


PM MAIL   Вверх
lanic
Дата 13.6.2009, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 7.6.2009

Репутация: нет
Всего: нет



Всё оказалось очень просто, нужно было в InitializeComponent добавить
Код

this.richTextBox1.HideSelection = false;

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0959 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.