Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2010, 09:50   #1
delias
Пользователь
 
Регистрация: 31.10.2009
Сообщений: 27
По умолчанию Интерфейс поиска и замены текста в richTextBox

Добрый день!

Преподаватель дал задание с помощью текстбокса сделать аналог блокнота с сохранением и открытием файла, а также поиском и заменой текста

Сохранение и загрузку сделал - там ничего сложного, а вот поиск и замену текста он сказал нужно сделать при помощи диалоговых окон изменения шрифта и цвета фона текста.

Я чёт не пойму, как при помощи fontDialog можно сделать поиск и замену текста?
Это какая-то ошибка в задании либо такое возможно?

Пробовал сделать просто через диалоговое окно, но что-то никак не получается передать richTextBox во вторую форму, а делать его public вроде бы как не комильфо.

Буду благодарен за советы!
delias вне форума Ответить с цитированием
Старый 28.10.2010, 11:12   #2
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Цитата:
Сообщение от delias Посмотреть сообщение
поиск и замену текста он сказал нужно сделать при помощи диалоговых окон изменения шрифта и цвета фона текста.
Он наверное ошибся или ты не так понял. Эти диалоги для настройки шрифта, что есть в стандартном блокноте.

А твою форму сделать очень просто. Делаешь форму, кидаешь нужные контролы. Показываешь её не по ShowDialog(), а Show(this). На форме сделай события(event) по клику на кнопку Искать или Замена. И в параметрах события посылай, что искать, или что на что заменять. А уже в главное форме обрабатывай.
Hollander вне форума Ответить с цитированием
Старый 29.10.2010, 15:54   #3
delias
Пользователь
 
Регистрация: 31.10.2009
Сообщений: 27
По умолчанию

спасибо за совет.

сделал через Apply так в диалоговом окне:
Код:
public event EventHandler Apply;
....
private void button1_Click(object sender, EventArgs e)
        {
           if (Apply != null)
               Apply(this, new SendStr(textBox1.Text));
        }

        class SendStr : EventArgs
        {
            public SendStr(string str)
            {
                this.s = str;
            }
            string s;  
        }
и потом в головной форме добавляю это событие:
search.Apply += new EventHandler(search_Apply);

но вот проблема в том что я в первой форме не могу получить класс SendStr со строкой, обработчик не видит её.
Код:
        void search_Apply(object sender, EventArgs e)
        {
            search s = (search)sender;

        }
не знаю, понятно ли изложился... надеюсь что да
delias вне форума Ответить с цитированием
Старый 29.10.2010, 18:27   #4
Casper-SC
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 549
По умолчанию

Если я правильно понял, то EventHandler это делегат для событий без параметров, то есть, если ничего не надо передавать, то можно использовать его.

Попробуй как-то так сделать (писал не в студии, но вроде всё верно):

Код:
        public delegate void strEventHandler(object sender, SendStr sendStr);
        public event strEventHandler Apply;

        private void OnApply()
        {
            if (Apply != null)
            {
                Apply(this, new SendStr(textBox1.Text));  
            }
        } 

        class SendStr : EventArgs
        {
            public SendStr(string str)
            {
                this.s = str;
            }
            string s;  
        }

private void button1_Click(object sender, EventArgs e)
{
      OnApply();
}

-----------------
А ну да:
Цитата:
// Сводка:
// Представляет метод, который будет обрабатывать событие, не имеющее данных.
//
// Параметры:
// sender:
// Источник события.
//
// e:
// Объект System.EventArgs, не содержащий данных события.
[Serializable]
[ComVisible(true)]
public delegate void EventHandler(object sender, EventArgs e);

Последний раз редактировалось Casper-SC; 29.10.2010 в 18:30. Причина: Дополнил
Casper-SC вне форума Ответить с цитированием
Старый 29.10.2010, 18:36   #5
delias
Пользователь
 
Регистрация: 31.10.2009
Сообщений: 27
По умолчанию

блин, спасибо большое Casper-SC!!
заработало.
пока ещё сам не совсем пойму как, но буду разбираться отдельно с каждой строкой.
спасибо еще раз!
delias вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция поиска и замены подстроки в строке типа PChar Son Помощь студентам 9 19.04.2010 16:06
Макрос для поиска и замены слов на слова с верхним подчеркиванием salvafion Microsoft Office Word 4 07.09.2009 19:14
программа поиска и замены+копирования текста 666dvg999 Общие вопросы C/C++ 4 05.10.2008 20:01
Макрос для поиска/замены Davidoff Microsoft Office Excel 1 20.01.2007 16:01