![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Katshooter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 10.6.2007 Репутация: 1 Всего: 1 |
У меня проблемка! Пишу блокнотик с подсветкой, при открытии нужно пробежать по всему файлу и подсветить нужные слова(к примеру теги или имена). При этом если файл достаточно длинный, очень сильно заметен сам процесс поиска( то как курсорчик с бешеной скоростью бегает по документу). Как избавиться от этого эффекта?
|
|||
|
||||
| archeg |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 6.1.2007 Где: Киев Репутация: 11 Всего: 27 |
Спрячь текстбокс на время поиска, поставь вместо него прогрессбар
-------------------- ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru) Дядька всегда можно спросить в аське, если не задалбывать - не откажет И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои ;) |
|||
|
||||
| Katshooter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 10.6.2007 Репутация: 1 Всего: 1 |
должен быть текст виден, таже процедура должна быть и на chenged, тогда при написании одной буквы будет появляться прогрессбар?, насчет "спрятать текст" как это сделать можно не трогая выделение?
|
|||
|
||||
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
archeg, прогресс бар - дело полезное в таких случаях, но прятать окно каждый раз при сервисных операциях... Думаю - не очень. Тогда при каждом чихе не текст в редакторе мелькать будет, а весь редактор
Katshooter, ИМХО нужно попробовать Control.SuspendLayout (), Control.ResumeLayout () Вроде как они для этого предназначены. -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
| Katshooter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 10.6.2007 Репутация: 1 Всего: 1 |
попробовала ResumeLayout и SuspendLayout, чот не помогает(((
|
|||
|
||||
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
А как ты вообще это делаешь? Зачем на каждом шаге курсор переставляешь? Может покажешь код?
-------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
| Katshooter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 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(); --------------- |
|||
|
||||
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
Да... Select двигает каретку однозначно
Но он ее двигает только когда richTextBox1 имеет фокус, поэтому перед своими операциями переставь фокеус на какой-нибудь элемент, а после - верни его на richTextBox1 -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
Ага, а ещё, пожалуйста, выделяй код кнопкой "Код"!
|
|||
|
||||
| Katshooter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 10.6.2007 Репутация: 1 Всего: 1 |
Огромное спасибо ребята!!! Очень помогаете!!! Прям не знаю, чтобы делала без Вас!!! Простите, насчет оформления и ошибок, в следующий раз обязательно исправлюсь,))) С кода, плиз, тоже не смейтесь, я тока учусь
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |