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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как уйти от мелькания строк? 
:(
    Опции темы
Katshooter
Дата 10.6.2007, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



У меня проблемка! Пишу блокнотик с подсветкой, при открытии нужно пробежать по всему файлу и подсветить нужные слова(к примеру теги или имена). При этом если файл достаточно длинный, очень сильно заметен сам процесс поиска( то как курсорчик с бешеной скоростью бегает по  документу). Как избавиться от этого эффекта? smile  Надеюсь на  помощь)
PM MAIL   Вверх
archeg
Дата 10.6.2007, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 6.1.2007
Где: Киев

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



Спрячь текстбокс на время поиска, поставь вместо него прогрессбар


--------------------
ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru)

Дядька всегда можно спросить в аське, если не задалбывать - не откажет smile
И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои  ;)
PM MAIL ICQ Jabber   Вверх
Katshooter
Дата 10.6.2007, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



должен быть текст виден, таже процедура должна быть и на chenged, тогда при написании одной буквы будет появляться прогрессбар?, насчет "спрятать текст" как это сделать можно не трогая выделение?
PM MAIL   Вверх
tol05
Дата 10.6.2007, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

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



archeg, прогресс бар - дело полезное в таких случаях, но прятать окно каждый раз при сервисных операциях... Думаю - не очень. Тогда при каждом чихе не текст в редакторе мелькать будет, а весь редактор  smile 

Katshooter, ИМХО нужно попробовать Control.SuspendLayout (), Control.ResumeLayout () 
Вроде как они для этого предназначены.
 


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
Katshooter
Дата 10.6.2007, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



попробовала ResumeLayout и SuspendLayout, чот не помогает((( 
PM MAIL   Вверх
tol05
Дата 10.6.2007, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

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



А как ты вообще это делаешь? Зачем на каждом шаге курсор переставляешь? Может покажешь код?


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
Katshooter
Дата 11.6.2007, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



легко))
---------------------------
            richTextBox1.SuspendLayout();
            string s = richTextBox1.Text;
            s += ' ';
            int f=0;
            int cur = richTextBox1.SelectionStart;
            richTextBox1.SelectAll();
            richTextBox1.SelectionColor = Color.Black;
            for(int i=0;i<mas.Length;i++)
            {
                while (f != -1)
                {
                    f = s.IndexOf(mas[i],f+1);
                    if (f != -1 )
                    {
                        if ((s[f - 1] == '<'|| s[f-1]=='/') && (s[f + mas[i].Length] == ' ' || s[f + mas[i].Length] == '>'))
                        {
                            richTextBox1.Select(f, mas[i].Length);
                            richTextBox1.SelectionColor = Color.Red;
                        }
                        else
                        {
                            richTextBox1.Select(f, mas[i].Length);
                            richTextBox1.SelectionColor = Color.Black;
                        }
                    }
                }
                f = 0;
            }
            richTextBox1.DeselectAll();
            richTextBox1.Select(cur, 0);
            richTextBox1.ResumeLayout();
---------------
PM MAIL   Вверх
tol05
Дата 11.6.2007, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

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



Да... Select двигает каретку однозначно smile
Но он ее двигает только когда richTextBox1 имеет фокус, поэтому перед своими операциями переставь фокеус на какой-нибудь элемент, а после - верни его на richTextBox1 


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
Exception
Дата 11.6.2007, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Ага, а ещё, пожалуйста, выделяй код кнопкой "Код"!
PM   Вверх
Katshooter
Дата 11.6.2007, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Огромное спасибо ребята!!! Очень помогаете!!! Прям не знаю, чтобы делала без Вас!!! Простите, насчет оформления и ошибок, в следующий раз обязательно исправлюсь,))) С кода, плиз, тоже не смейтесь, я тока учусь smile  
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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